Определите константу SmallInt как шестнадцатеричное - PullRequest
7 голосов
/ 29 января 2020

Мне нужно определить SmallInt константу с шестнадцатеричным значением. В некотором роде так:

const
  a: SmallInt = $8000;

Конечно, значение $8000 нарушает границы поддиапазона SmallInt. Я знаю это и делаю это сознательно. На самом деле мне нужен побитовый перевод этого литерала в 16-разрядное целое число со знаком.

Если бы это была переменная, я мог бы использовать ключевое слово absolute:

var
  a_prototype: Word;
  a: SmallInt absolute a_prototype;
begin
  a_prototype := $8000;

, но это должно быть константой.

1 Ответ

8 голосов
/ 29 января 2020

Используйте приведение

const
  a = SmallInt($8000);

Если вам нужна введенная константа, тогда это будет

const
  a: SmallInt = SmallInt($8000);
...