Difference between revisions of "Byte/ru"

From Lazarus wiki
Jump to navigationJump to search
Line 4: Line 4:
  
 
== Корректные значения ==
 
== Корректные значения ==
Ключевое отличие состоит в том, что <syntaxhighlight lang="pascal" enclose="none">byte</syntaxhighlight> может использоваться только в качестве числового [[Type/ru|<syntaxhighlight lang="pascal" enclose="none">type</syntaxhighlight>]], тогда как <syntaxhighlight lang="pascal" enclose="none">char</syntaxhighlight> может использоваться как символ или как часть строкового типа и не может использоваться в арифметическом выражении. <syntaxhighlight lang="pascal" enclose="none">byte</syntaxhighlight> всегда будет иметь тот же размер, что и [[AnsiChar/ru|<syntaxhighlight lang="pascal" enclose="none">ansiChar</syntaxhighlight>]], но в будущем <syntaxhighlight lang="pascal" enclose="none">char</syntaxhighlight> может считаться синонимом [[WideChar|<syntaxhighlight lang="pascal" enclose="none">wideChar</syntaxhighlight>]], а не [[AnsiChar/ru|<syntaxhighlight lang="pascal" enclose="none">ansiChar</syntaxhighlight>]].
+
Ключевое отличие состоит в том, что <syntaxhighlight lang="pascal" enclose="none">byte</syntaxhighlight> может использоваться только в качестве числового [[Type/ru|<syntaxhighlight lang="pascal" enclose="none">type</syntaxhighlight>]](типа), тогда как <syntaxhighlight lang="pascal" enclose="none">char</syntaxhighlight> может использоваться как символ или как часть строкового типа и не может использоваться в арифметическом выражении. <syntaxhighlight lang="pascal" enclose="none">byte</syntaxhighlight> всегда будет иметь тот же размер, что и [[AnsiChar/ru|<syntaxhighlight lang="pascal" enclose="none">ansiChar</syntaxhighlight>]], но в будущем <syntaxhighlight lang="pascal" enclose="none">char</syntaxhighlight> может считаться синонимом [[WideChar|<syntaxhighlight lang="pascal" enclose="none">wideChar</syntaxhighlight>]], а не [[AnsiChar/ru|<syntaxhighlight lang="pascal" enclose="none">ansiChar</syntaxhighlight>]].
  
 
Например:
 
Например:
Line 17: Line 17:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Использование типов данных <syntaxhighlight lang="pascal" enclose="none">byte</syntaxhighlight> или <syntaxhighlight lang="pascal" enclose="none">byte</syntaxhighlight> обеспечивает лучшую документированность при работе с конкретными переменными.  
+
Использование типов данных <syntaxhighlight lang="pascal" enclose="none">byte</syntaxhighlight> или <syntaxhighlight lang="pascal" enclose="none">byte</syntaxhighlight> обеспечивает лучшую документированность при работе с конкретными переменными.
  
 
== standard functions ==
 
== standard functions ==

Revision as of 12:56, 29 April 2022

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

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

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

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

Например:

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

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

standard functions

conversion to and from character

Тип 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