整数 (Integers)

Zig 支持任意位宽的整数。除了标准的原语类型(如 i32u64)之外,还可以定义任意位宽的整数标识符。

整数类型

  • 标准有符号整数:i8, i16, i32, i64, i128
  • 标准无符号整数:u8, u16, u32, u64, u128
  • 指针大小整数:isize (有符号), usize (无符号)
  • 任意位宽整数:i7 (有符号 7 位), u21 (无符号 21 位), u65535 (最大位宽)

整型字面量 (Integer Literals)

整型字面量属于 comptime_int 类型。它们没有固定的大小,并且具有任意精度。

  • 十进制:98222
  • 十六进制:0xff
  • 八进制:0o755
  • 二进制:0b11110000

为了提高可读性,可以在数字之间使用下划线 _ 作为分隔符:

const x = 1_000_000;
const y = 0x12_34_56;

运行时整数值 (Runtime Integer Values)

虽然整型字面量在编译时具有任意精度,但在运行时,整数值必须具有固定的大小。如果尝试将一个超出目标类型范围的整型字面量赋值给变量,将会导致编译错误。

var x: u8 = 255; // 好的
var y: u8 = 256; // 编译错误:integer literal '256' cannot be coerced to type 'u8'