Sign in Join
Wiki copytemporary

Byte/ru

Deutsch · English · Español · Français · Italiano · Suomi · Русский · 中文(中国)

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

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

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

Например:

pascal
var 
  c: byte; 
  ch: char;
begin
  c := 65;  ch := 'A';  { одинаковые и допустимые действия }
  c := 'A'; ch := 65;   { в то время как эти действия также одинаковы, но недопустимы }
end.

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

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

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

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

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

pascal
program ordChrDemo(input, output, stderr);
var
  foo: byte;
  bar: char;

begin
  foo := 65;
  bar := 'A';
    
  foo := ord('A');
  // chr(65) это эквивалент #65
  bar := chr(65);
  bar := #65;
    
  // альтернатива: приведения типов
  // приведения типов константных выражений
  // гарантированно произойдет во время компиляции
  foo := byte('A');
  bar := char(65);
end.

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

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

pascal
program binStrDemo(input, output, stderr);

var
    foo: byte;

begin
    foo := 10;
    writeLn(binStr(foo, 8));
end.

Выведет:

text
00001010

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


From the Free Pascal wiki, page "Byte/ru", as it stood on 2022-08-06 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 1, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.