MST

星途 面试题库

面试题:Rust 中如何根据场景选择合适的无符号整数类型

在Rust中,无符号整数类型有u8、u16、u32、u64、u128和usize。请描述在以下场景中应选择哪种无符号整数类型并说明原因:1. 表示一个字节的像素值;2. 记录一个游戏中的玩家得分,得分范围预计在0到65535之间;3. 用于计算一个大型数组的索引,该数组可能非常大,超过32位能表示的范围。
50.1万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
  1. 表示一个字节的像素值
    • 应选择u8
    • 原因:一个字节由8位组成,u8是无符号8位整数类型,正好可以表示0到255的范围,通常像素值在这个范围内,所以u8是最适合表示一个字节像素值的类型。
  2. 记录一个游戏中的玩家得分,得分范围预计在0到65535之间
    • 应选择u16
    • 原因:u16是无符号16位整数类型,其取值范围是0到65535,能满足得分范围的要求,相比更大的类型如u32等,u16占用空间更小,在内存使用上更高效。
  3. 用于计算一个大型数组的索引,该数组可能非常大,超过32位能表示的范围
    • 应选择usize
    • 原因:usize的大小取决于目标机器的架构(在32位系统上是32位,在64位系统上是64位),它用于表示内存地址和集合的长度等,能适应不同架构下大型数组索引的需求,并且在不同架构下都能保证足够大的表示范围,而u32在32位系统下最大只能表示约42亿,可能无法满足大型数组索引的要求。