Difference between revisions of "Byte/ru"
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 |