Difference between revisions of "Byte/ru"

From Lazarus wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
Line 14: Line 14:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Использование типов данных '''byte''' или '''char''' обеспечивает лучшую документированность при работе с конкретными переменными. Тип '''byte''' может быть [[coercion/ru|приведен]] к типу '''char''' с помощью функции '''[[Chr/ru|chr]]'''. Значения типа '''Char''' могут быть приведены к типу '''byte''' с помощью функции '''[[Ord/ru|ord]]'''.
+
Использование типов данных '''byte''' или '''char''' обеспечивает лучшую документированность при работе с конкретными переменными. Тип '''byte''' может быть [[coercion|приведен]] к типу '''char''' с помощью функции '''[[Chr/ru|chr]]'''. Значения типа '''Char''' могут быть приведены к типу '''byte''' с помощью функции '''[[Ord/ru|ord]]'''.
  
 
Исправленный вариант приведенной выше программы:
 
Исправленный вариант приведенной выше программы:

Revision as of 16:23, 3 September 2020

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