使用十六进制或二进制记法定义数值时,将自动创建一个无符号整数,其表示形式的位宽刚好足以容纳指定的值。例如:
0b101 # 无符号8位 0x100 # 无符号16位 0xDEADBEEF # 无符号32位 0x1DEADBEEF # 无符号64位
可以通过添加后缀来指定存储类。使用 ‘s’ 表示有符号整数,使用 ‘u’ 表示无符号整数,并配合位宽(‘8’、 ‘16’、‘32’、‘64’)。使用下划线分隔符 ‘_’ 可以提高可读性。例如:
0b101s16 # 有符号16位 0b101_s16 # 有符号16位,数值与表示分离 0xDEADBEEFs32 # 有符号32位 0xDEADBEEF_u64 # 无符号64位
需要注意的是,在定义整数常量矩阵时,整个矩阵将采用其第一个元素的存储类。矩阵
[0x1; 0x100; 0x10000] 的类型将是 uint8,由于整数值的饱和语义,较大的值
将被截断。为避免此问题,可采取以下措施之一:1) 将第一个整数声明为所需位宽,
例如 [0x1u32; 0x100; 0x10000];或者 2) 在数组表达式中使用前导零填充常量,
使每个值使用相同的位数,例如 [0x00_00_01; 0x00_01_00; 0x01_00_00]。
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-4