Rust 按位转换为 u8

Rust bitwise into u8

我试过了,但没用。

let result: u8 = opcode & 0xff;

事情是 opcode & 0xff 总是 return 0 -> 255 中的某些东西,它总是适合 u8 但编译器会引发错误 expected u8 but found u16。为什么 Rust 会引发错误?

Rust 不会在类型之间隐式转换,您必须使用 as 关键字明确转换:

let result = opcode as u8;

请注意,您可以省略 AND 运算符,as 关键字会在从较大类型转换时自动截断数字。