4.4.1十六进制和二进制整数常量

使用十六进制或二进制表示法定义一个数字时,将自动创建一个无符号整数,使用刚好足够容纳指定值的表示形式。例如:

0b101        # uint8
0x100        # uint16
0xDEADBEEF   # uint32
0x1DEADBEEF  # uint64

可以通过添加后缀来指定存储类别。使用 ‘s’ 表示有符号整数,使用 ‘u’ 表示无符号整数,再加上大小 (‘8’, ‘16’, ‘32’, ‘64’)。使用下划线分隔符 ‘_’ 可以提高可读性。例如:

0b101s16        # int16
0b101_s16       # int16, value and representation separated
0xDEADBEEFs32   # int32
0xDEADBEEF_u64  # uint64

注意,当定义整数常量矩阵时,整个矩阵将具有其第一个元素的存储类别。矩阵 [0x1; 0x100; 0x10000] 将是 uint8 类型,较大的值 将被截断,因为整数值的饱和语义。为了避免这个问题,可以采取以下措施:1) 声明第一个整数为所需大小 例如 [0x1u32; 0x100; 0x10000],或者 2) 在数组表达式中使用前导零填充常量, 使它们对每个值使用相同数量的数字,例如 [0x00_00_01; 0x00_01_00; 0x01_00_00]

版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2