将 SmallInt 常量定义为十六进制

Pau*_*aul 7 delphi casting

我需要SmallInt用十六进制值定义一个常量。像这样:

const
  a: SmallInt = $8000;
Run Code Online (Sandbox Code Playgroud)

当然,该$8000值违反了 的子范围界限SmallInt。我知道并刻意去做。实际上,我需要将此文字按位转换为 16 位有符号整数。

如果它是一个变量,我可以使用一个absolute关键字:

var
  a_prototype: Word;
  a: SmallInt absolute a_prototype;
begin
  a_prototype := $8000;
Run Code Online (Sandbox Code Playgroud)

但它应该是一个常数。

Dav*_*nan 8

使用演员表

const
  a = SmallInt($8000);
Run Code Online (Sandbox Code Playgroud)

如果你需要一个类型化的常量,那就是

const
  a: SmallInt = SmallInt($8000);
Run Code Online (Sandbox Code Playgroud)