Что такое byte в паскале
Перейти к содержимому

Что такое byte в паскале

  • автор:

Byte/ru

Тип byte (байт) является беззнаковым integer (целым) типом, представляющим значения в диапазоне 0 .. 255 и занимающим 8 бит. Типы byte и char являются одним и тем же в FPC версии 3.

Contents

Корректные значения

Ключевое отличие состоит в том, что byte может использоваться только в качестве числового type (типа), тогда как char может использоваться как символ или как часть строкового типа и не может использоваться в арифметическом выражении. byte всегда будет иметь тот же размер, что и ansiChar , но в будущем char может считаться синонимом wideChar , а не ansiChar .

Использование типов данных byte или byte обеспечивает лучшую документированность при работе с конкретными переменными.

Стандартные функции

Преобразование в символ и из него

Тип byte может быть приведен к типу char с помощью функции chr . Значения типа chr могут быть приведены к типу byte с помощью функции ord .

Исправленный вариант приведенной выше программы:

Строковое представление

Функцию binStr function из модуля system можно использовать для получения string (строки), показывающей двоичное представление byte :

Более универсальной функцией является intToBin , предоставляемая модулем strUtils .

2.2. Байтовый тип /Byte/

Байтовый тип Byte является своеобразным подмножеством типа Integer и охватывает целые числа в диапазоне от 0 до 255.

Данные, имеющие байтовый тип, можно сравнивать с данными целочисленного типа. Каждый раз, когда вы ожидаете получить величину типа Byte, вместо нее можно специфицировать значение целочисленного типа /Integer/ и наоборот. Исключение составляют только те случаи, когда величина определяется в качестве параметров. Кроме того, в арифметических выражениях допускается смешение данных типов Byter и Integers, а переменным байтового типа можно присваивать значение целочисленного типа. Переменная типа Byte занимает в памяти 1 байт.

2.3. Вещественный тип /Real/

Диапазон значений переменных вещественного типа охватывает числа от 1Е-38 до 1Е+38 с мантиссой, которая может содержать до 11 значащих цифр. Для размещения в памяти одной переменой вещественного типа требуется 6 байт.

Переполнение, возникающее при выполнении арифметических операций над данными вещественного типа, вызывает остановку программы и на экран выводится сообщение об ошибке. В случае выхода за нижнюю границу интервала результату присваивается нулевое значение.

Хотя данный тип /Real/ определяется здесь как стандартный, следует отметить некоторые различия, которые существуют между типом Real и другими скалярными типами:

1. Данные вещественного типа нельзя использовать для индексирования

2. Вещественный тип нельзя определять как базовый тип множества.

3. Данные вещественного типа нельзя использовать в управляющих операто-

4. Вещественный тип данных не допускает определения ограниченных типов.

2.4. Булевский тип /Boolean/

Данные булевского типа / иногда его называют логическим/ могут принимать значение, определяемое стандартными идентификаторами True /истина/ и False /ложь/. Переменная булевского типа занимает в памяти 1 байт.

2.5. Символьный тип /Char/

Значением переменной символьного /иногда его называют литеральным/ типа может быть один из символов, входящих в ASCII /Американский стандартный код обмена информации/. Символы упорядочены друг относительно друга в соответствии с их значениями в коде ASCII, например: «А»<«В». Значение кодов символов в ASCII изменяются от 0 до 255. Переменная символьного типа /Char/ занимает один байт памяти.

3. СРУКТУРА ПРОГРАММЫ

3.1. Заголовок программы

В TURBO-Паскале заголовок программы играет чисто вспомогательную функцию и никакой существенной роли для самой программы не играет. Если заголовок присутствует, то он задает имя программы.

3.2. Раздел описания

В разделе описания, входящего в блок программы, описываются все идентификаторы, которые будут использоваться в разделе операторов данного блока программы /и, возможно, других блоков, находящихся внутри него/. Раздел описания, в свою очередь, состоит из пяти различных разделов:

1. Раздел описания меток

2. Раздел определения констант

3. Раздел определения типов

4. Раздел описания переменных

5. Раздел описания процедур и функций

В стандартном языке Паскаль установлено, что каждый раздел может встречаться в программе только один раз или же не встречаться вообще, причем располагаться разделы должны в порядке, указанном выше. В языке TURBO – Паскаль ограничения по количеству повторений и нахождений того или иного раздела сняты.

Pascal-Паскаль

Программирование. Числовые типы данных Pascal-Паскаль

  • Скачено бесплатно: 26426
  • Куплено: 414
    ->Программирование. Числовые типы данных Pascal-Паскаль

Программирование. Числовые типы данных Pascal-Паскаль

Числовые типы данных Pascal-Паскаль

Наиболее распространенные в математике числовые типы – это целые числа, которые представляют бесконечное множество дискретных значений, и действительные числа, которые представляют неограниченный континуум значений.

Описание числовых типов данных (целые) Паскаля

В пределах одного языка могут быть реализованы различные подмножества множества целых чисел. Диапазон возможных значений целых числовых типов зависит от их внутреннего представления, которое может занимать один, два или четыре байта. Так, в Паскале 7.0 используются следующие целые числовые типы данных:

Числовые типы данных (ЦЕЛЫЕ ТИПЫ) Паскаля
Название числового типа данных Длина, байт числового типа данных Диапазон значений числового типа данных
Byte 1 0..255
ShortInt 1 -128..+127
Word 2 0..65535
Integer 2 -32768..+32767
LongInt 4 -2 147 483 648..+2 147 483 647

С целыми числовыми типами данных Паскаля можно выполнять следующие операции:

  • Арифметические:
    сложение(+);
    вычитание(-);
    умножение(*);
    остаток от деления (mod);
    возведение в степень;
    унарный плюс (+);
    унарный минус (-).
  • Операции отношения:
    отношение равенства (=);
    отношение неравенства (<>);
    отношение меньше (<);
    отношение больше (>);
    отношение не меньше (>=);
    отношение не больше (<=).

При действиях с целыми числовыми типами данных тип результата будет соответствовать типу операндов, а если операнды относятся к различным целым типам, — типу того операнда, который имеет максимальную мощность (максимальный диапазон значений). Возможное переполнение результата никак не контролируется (это важно!), что может привести к ошибкам.

Особое внимание следует уделить операции деления целых числовых типов данных. В Паскале допускается две операции деления, которые соответственно обозначаются ‘/’ и div. Нужно знать, что результатом деления ‘/’ является не целое, а вещественное число (это справедливо, даже если вы делите 8 на 2, т.е. 8/2=4.0). Деление div – это целочисленное деление, т.е. тип результата целый.

Описание числовых типов данных (действительные) Паскаля

К вещественному числовому типу данных относится подмножество вещественных чисел, которые могут быть представлены в так называемом формате с плавающей запятой и фиксированным числом цифр. С плавающей точкой каждый числовой тип данных представляется в виде двух групп цифр. Первая группа цифр называется мантиссой, вторая – порядком. В общем виде числовой тип данных в форме с плавающей точкой может быть представлено так: X= <+|->MP <+ | ->r , где M – мантисса числа; r – порядок числа (r – целое число); P – основание системы счисления. Например, для десятичного основания представление 2Е-1 (здесь Е – основание десятичной системы счисления) будет иметь вид: 2*10 -1 =0.2, а представление 1.234Е5 будет соответствовать: 1.234*10 5 =123400.0.

В Паскале используются следующие типы вещественных чисел, которые определяют произвольное число лишь с некоторой конечной точностью, зависящей от внутреннего формата вещественного числа:

Длина числового типа данных, байт Название числового типа данных Количество значащих цифр числового типа данных Диапазон десятичного порядка числового типа данных
4 Single 7..8 -45..+38
6 Real 11..12 -39..+38
8 Double 15..16 -324..+308
10 Extended 19..20 -4951..+4932
8 Comp 19 . .20 -2*10 63 +1..+2*10 63 -1

При описании вещественной переменной типа real в памяти компьютера будет создана переменная размерностью 4 байта. При этом 3 байта будут отданы под мантиссу, а один – под порядок.

Над действительными числовыми типами данных можно выполнять следующие операции:

  • Арифметические:
    сложение (+);
    вычитание(-);
    умножение(*);
    деление(/);
    возведение в степень;
    унарный плюс (+);
    унарный минус (-).
  • Операции отношения:
    отношение неравенства (<>);
    отношение меньше (<);
    отношение больше (>);
    отношение не меньше (>=);
    отношение не больше (<=).

Как видим, Паскаль характеризуется богатой гаммой вещественных типов, однако доступ к числовым типам данных single, double и extended возможен только при особых режимах компиляции. Эти числовые типы данных рассчитаны на аппаратную поддержку арифметики с плавающей точкой и для их эффективного использования в состав ПК должен входить математический сопроцессор.

Особое положение в Паскале занимает числовой тип данных comp, который трактуется как вещественное число без экспоненциальной и дробной частей. Фактически, comp – это «большое» целое число со знаком, сохраняющее 19..20 значащих десятичных цифр. В то же время числовой тип данных comp в выражениях полностью совместим с другими вещественными типами: над ним определены все вещественные операции, он может использоваться как аргумент математических функций и т.д.

О преобразовании числовых типов данных Паскаля

В Паскале почти невозможны неявные (автоматические) преобразования числовых типов данных. Исключение сделано только для типа integer, который разрешается использовать в выражениях типа real. Например, если переменные описаны следующим образом:

будет синтаксически правильным, хотя справа от знака присваивания стоит целочисленное выражение, а слева – вещественная переменная, компилятор сделает преобразование числовых типов данных автоматически. Обратное же преобразование автоматически типа real в тип integer в Паскале невозможно. Вспомним, какое количество байт выделяется под переменные типа integer и real: под целочисленный тип данных integer выделяется 2 байта памяти, а под real – 6 байта. Для преобразования real в integer имеются две встроенные функции: round(x) округляет вещественное x до ближайшего целого, trunc(x) усекает вещественное число путем отбрасывания дробной части.

Программирование

Исходники Pascal (127)

Справочник

Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту

Data types. Standard data types. Integer types. Ordinal types. Functions Ord , Pred , Succ . Function SizeOf

In a program, data is characterized by a so-called type defined for each variable declared in the program. In other words, each variable has its own specific type. The type of a variable is a characteristic that determines the set of values that a variable can take. Based on the type of the variable, a corresponding memory size is allocated for each variable.

The Pascal programming language allows you to use a set of types, which are divided into two groups:

  • standard (predefined) types;
  • custom types. These are user-defined (programmer) types.

Standard types have well-defined names and are available anywhere in the program. All standard types are described in the System module. To use standard types, the program does not need to include the System unit in the uses clause, since this unit is included by default. Standard types are available in any module of the program.

It is allowed to override the names of standard types in the program. Also the type can be accessed by using the module name System as shown below

User-defined types are programmer-defined types. These types are necessary to provide a more preferable solution to the task at hand. With the help of user-defined types in the program, you can more accurately describe the data required to solve the problem.

In Pascal, the following user-defined types are distinguished:

  • enumerated type;
  • interval type;
  • pointer types (except for the standard Pointer type);
  • structured types;
  • object types.
2. Classification of standard types

The names and the number of types change in different versions of Pascal. There are basic Pascal types and additional types added in new subsequent versions and varieties of this language: Delphi (Object Pascal), Lazarus, PascalABC.

The standard types of the Pascal language are:

  • integers ShortInt , Integer , LongInt , Byte , Word ;
  • real types Single , Real , Double , Extended , Comp ;
  • boolean types Boolean , ByteBool , WordBool , LongBool ;
  • character type Char ;
  • string types String , PChar ;
  • pointer type Pointer ;
  • text type named Text .

New standard types have been added to the Free Pascal language:

  • integers SmallInt , Cardinal , LongWord , Int64 , QWord ;
  • real type Currency ;
  • character type WideChar .

The following types have been added to the Delphi language:

  • integers SmallInt , Cardinal , LongWord , Int64 , UInt64 , NativeInt , NativeUint ;
  • real types Real48 , Currency .
3. Ordinal types. Concepts. Characteristics of ordinal types. Ord , Pred , Succ functions

Ordinal data types include the following standard types:

  • integers ShortInt, Integer, LongInt, Byte, Word, SmallInt, Cardinal, LongWord, Int64 , QWord ;
  • boolean types Boolean , ByteBool , WordBool , LongBool ;
  • character types Char , WideChar .

For ordinal types, you can define the following properties.

  • for each ordinal type, a set of admissible values is defined, which are an ordered sequence. Each element of the ordinal type has its own ordinal number, represented by an integer. The first value in ordinal types Byte , Word , Boolean , ByteBool , WordBool , LongBool has ordinal 0, followed by ordinal 1, etc. In ordinal types ShortInt , Integer , LongInt , the ordinal is equal to the value of these types;
  • for any ordinal type, the standard Ord function is applicable, which determines the ordinal number of this value;
  • for any ordinal type, the standard Pred function is applicable, which returns the previous value relative to a given value. If the Pred function is applied to the first valid value of an ordinal type (other than boolean types), then the ordinal of the last value is returned;
  • any ordinal type can be used in the standard Succ function that returns the value that follows the specified one. If this function is applied to the last valid value of an ordinal type (other than boolean types), then the ordinal of the first value is returned.
4. An example demonstrating the use of ordinal types in combination with the Pred , Succ functions

The example shows the use of the Pred , Succ functions for the standard types of classical Pascal. These functions can also be used for new types of Free Pascal language.

5. Integer types. Characteristics of integer Types in standard Pascal and Free Pascal

Table 1 displays the characteristics of integer types implemented in standard Pascal.

Type description

Designation in the program Range of numbers

Memory size

Figure 1. Characteristics of integer types in Pascal

Important characteristics of a type include memory size in bytes and range of numbers. Memory size determines how many bytes will be allocated to store one variable or constant in memory. If you declare a variable of type LongInt , then 4 bytes of memory will be allocated to store it.

In Free Pascal, the list of integer types has been changed (see table 2), namely:

  • added additional types SmallInt , Cardinal , LongWord , Int64 , QWord ;
  • the Integer type can occupy memory of 2 or 4 bytes in order to ensure compatibility between 16-bit words and 32-bit words implemented in different generations of processors.

Table 2 contains additional integer types added in Free Pascal.

0..4294967295 same as LongWord

Delphi adds the following integer types: SmallInt , Cardinal , LongWord , Int64 , UInt64 , NativeInt , NativeUint . These types have the same characteristics as the types of the same name from Table 2. The NativeInt type has the same characteristics as the LongInt type. The NativeUint type corresponds to the LongWord type.

6. An example of declaring and using variables of integer types

Below is a snippet of the declaration of variables and constants of standard Pascal integer types.

7. Determination of the minimum and maximum allowable values of integer types programmatically. Example

For some types, there are predefined constants that determine the minimum or maximum allowable value that a variable of a certain type can receive. The list of these constants may differ in different languages (Free Pascal, Delphi, PascalABC).

Below is an example of using the MaxInt and MaxLongInt constants in Delphi and Lazarus systems

8. Determining the size of the type programmatically. Function SizeOf . Example

To get the size of a type occupied by a variable, use the SizeOf function. In general, a function call looks like this:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *