字面量和运算符

整数 1、浮点数 1.2、字符 'a'、字符串 "abc"、布尔值 true 和单元类型 () 可以使用字面量表示。

整数还可以使用十六进制、八进制或二进制表示法,分别使用这些前缀:0x0o0b

可以在数字字面量中插入下划线以提高可读性,例如,1_0001000 相同,0.000_0010.000001 相同。

Rust 也支持科学计数法 E 表示法,例如 1e67.6e-4。关联的类型是 f64

我们需要告诉编译器我们使用的字面量的类型。现在,我们将使用 u32 后缀来表示字面量是无符号 32 位整数,使用 i32 后缀来表示它是有符号 32 位整数。

可用的运算符及其在 Rust 中的优先级 在 Rust 中 与其他 类 C 语言 相似。

fn main() {
    // Integer addition
    println!("1 + 2 = {}", 1u32 + 2);

    // Integer subtraction
    println!("1 - 2 = {}", 1i32 - 2);
    // TODO ^ Try changing `1i32` to `1u32` to see why the type is important

    // Scientific notation
    println!("1e4 is {}, -2.5e-3 is {}", 1e4, -2.5e-3);

    // Short-circuiting boolean logic
    println!("true AND false is {}", true && false);
    println!("true OR false is {}", true || false);
    println!("NOT true is {}", !true);

    // Bitwise operations
    println!("0011 AND 0101 is {:04b}", 0b0011u32 & 0b0101);
    println!("0011 OR 0101 is {:04b}", 0b0011u32 | 0b0101);
    println!("0011 XOR 0101 is {:04b}", 0b0011u32 ^ 0b0101);
    println!("1 << 5 is {}", 1u32 << 5);
    println!("0x80 >> 2 is 0x{:x}", 0x80u32 >> 2);

    // Use underscores to improve readability!
    println!("One million is written as {}", 1_000_000u32);
}