Byte/ru

From Lazarus wiki
Revision as of 07:28, 10 February 2020 by Trev (talk | contribs) (Fixed syntax highlighting)
Jump to navigationJump to search

Deutsch (de) English (en) español (es) suomi (fi) français (fr) italiano (it) русский (ru) 中文(中国大陆)‎ (zh_CN)

Тип byte (байт) является беззнаковым целым типом, представляющим значения в диапазоне 0 .. 255 и занимающим 8 бит. Типы byte и char являются одним и тем же в Free Pascal версии 3 за исключением того, что byte может использоваться только в качестве числового типа, а char может использоваться для символов или частей строк и не может использоваться в арифметических выражениях. Тип byte всегда будет иметь такой же размер, как и AnsiChar. При этом, в будущем тип Char может быть рассмотрен в качестве синонима для WideChar,а не AnsiChar.

Например:

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

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

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

var
  c: byte; 
  ch: char;
begin
  c := 65;  ch := 'A'; { одинаковые и допустимые действия }
  c := ord('A');  ch := Chr(65); { теперь допустимо ... ch := Chr(65); это равносильно ch := #65}
  c := Byte('A'); ch := Char(65); { также допустимо и гарантированно выполнится при компиляции }
end.

Функция IntToBin из модуля StrUtils может использоваться для получения строки, отображающей двоичное представление байта:

uses StrUtils;

var
   a_byte : Byte = 10;

begin
   Writeln(IntToBin(a_byte,8));
end.

Выведет:

00001010

Типы данных
Простые типы Boolean | Byte | Cardinal | Char | Currency | Extended | Int64 | Integer | Longint | Pointer | Real | Shortint | Smallint | Word
Сложные типы Array | Class | Record | Set | String | Shortstring