有人告诉我,只要内存大小不是一个大问题,使用 int 而不是 byte 或 short 总是更好,因为 CPU 实际上更容易处理 int(CPU 需要做额外的事情来处理字节和短裤)。在 C# 中是这样吗?
最佳答案
它更多地取决于处理器而不是语言。一个 8-bit微 Controller 几乎肯定能够比 32 位 int 更快地访问 8 位字符。
意识到这一限制后,算法设计人员可以做出相应的计划:Rijndael 的原因之一赢得 AES 比赛是因为设计者除了关心 32 位或更大处理器的执行速度之外,还计划尽可能快地制作 8 位版本。
但对于 32 位和 64 位微处理器,数据对齐和批量数据访问是关键:int
访问通常比 char
快很多访问和long long
(64 位)可能对于某些系统来说更快。 (但是 32 位机器上的 64 位操作要慢得多,所以当数据实际上在 64 位中更有意义时,使用 64 位数据类型最有意义。)
关于c# - C# 中的字节与短与整数(以及无符号变体)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5064712/