Шестнадцатеричный формат для целых чисел
Константы целочисленных типов можно указать в шестнадцатеричном формате.
Количество шестнадцатеричных цифр | Тип данных |
---|---|
1-8 |
INTEGER |
9-16 |
BIGINT |
17-32 |
INT128 |
Запись SMALLINT
в шестнадцатеричном представлении не поддерживается в явном виде, но Firebird будет прозрачно преобразовывать шестнадцатеричное число в SMALLINT
, если это необходимо, при условии что оно попадает в допустимый диапазон положительных и отрицательных значений для SMALLINT
.
Использование и диапазоны значений чисел шестнадцатеричной нотации более подробно описаны в ходе обсуждения числовых констант в главе под названием “Общие элементы языка”.
INSERT INTO MYBIGINTS VALUES (
-236453287458723,
328832607832,
22,
-56786237632476,
0X6F55A09D42, -- 478177959234
0X7FFFFFFFFFFFFFFF, -- 9223372036854775807
0XFFFFFFFFFFFFFFFF, -- -1
0X80000000, -- -2147483648, т.е. INTEGER
0X080000000, -- 2147483648, т.е. BIGINT
0XFFFFFFFF, -- -1, т.е. INTEGER
0X0FFFFFFFF -- 4294967295, т.е. BIGINT
);
Шестнадцатеричный INTEGER
автоматически приводится к типу BIGINT
перед вставкой втаблицу. Однако это происходит после установки численного значения, так 0x80000000 (8 цифр)и 0x080000000 (9 цифр) будут сохранены в разных форматах. Значение 0x80000000 (8 цифр)будет сохранено в формате INTEGER
, а 0x080000000 (9 цифр) как BIGINT
.