字节运算艺术 编程语言常规都含有 int 类型, 而 int 类型最简单的日常仅仅作为 1+1 来做数值运算; 但是其中还有更多高阶玩法, 在编程当中涵盖大量实用技巧.
以下采用 Rust 编写处理示例
最简单的 int 分为:
int32: 取值范围(-2147483648~2147483647),取值位(4字节), 位长度(32) uint32: 取值范围(0~4294967295),取值位(4字节), 位长度(32) 日常语言推算位:
println!( "Int32 -> RANGE({}~{}), Byte({}) , Length({})", i32::MIN, i32::MAX, std::mem::size_of::<i32>(), i32::BITS, ); // Int32 -> RANGE(-2147483648~2147483647), Byte(4) , Length(32) println!( "Uint32 -> RANGE({}~{}), Byte({}) , Length({})", u32::MIN, u32::MAX, std::mem::size_of::<u32>(), u32::BITS, ); // Uint32 -> RANGE(0~4294967295), Byte(4) , Length(32) 这里就是 Rust 内部的获取数值进制位相关数值对象, 但是接下来后续知识点最好了解 进制换算 相关知识才能看得懂.
还需要说明 isize|size_t|usize|usize_t 这种类型, 该类型是和平台相关的; 如果在 32 位架构中定义为 unsigned int32, 在 64 位架构中定义为 unsigned long, 这是为了应对将来全面步入 64 位架构所必须设置的类型.