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