C# 中的 Byte、Short、Int(以及无符号变体)?

发布于 2024-10-18 12:18:21 字数 111 浏览 5 评论 0原文

有人告诉我,只要内存大小不是一个大问题,使用 int 总是比使用 byte 或 Short 更好,因为 CPU 实际上更容易处理 int (CPU 需要做额外的事情)处理字节和短裤)。这在 C# 中是真的吗?

I was told, that as long as memory size was not a huge concern, it is always better to use an int instead of a byte or short because it is actually easier for the CPU to handle an int (the CPU needs to do extra stuff to work with bytes and shorts). Is this true in C#?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月野兔 2024-10-25 12:18:21

它更多地取决于处理器而不是语言。 8 位 微控制器几乎肯定能够比32 位整数。

意识到这一限制可以让算法设计者做出相应的计划:Rijndael 赢得 AES 的原因之一竞争是因为设计者除了关心 32 位或更大处理器上的执行速度之外,还计划尽可能快地制作 8 位版本。

但对于 32 位和 64 位微处理器,数据对齐和批量数据访问是关键:int 访问通常比 char 访问快得多 ,和long long(64位)对于某些系统可能仍然更快。 (但是 32 位机器上的 64 位操作要慢得多,因此当数据实际上在 64 位中更有意义时,使用 64 位数据类型最有意义。)

It depends more on the processor than on the language. An 8-bit microcontroller will almost certainly be able to access an 8-bit char faster than a 32-bit int.

Being aware of this limitation allows algorithm designers to plan accordingly: One of the reasons why Rijndael won the AES competition is because the designers had planned for making 8-bit versions as fast as possible, in addition to caring about execution speed on 32-bit or larger processors.

But for 32-bit and 64-bit microprocessors, data alignment and bulk data access is key: int accesses are frequently much faster than char accesses, and long long (64 bit) may be faster still for some systems. (But the 64-bit operations on a 32-bit machine are much slower, so using 64-bit datatypes makes most sense when the data actually makes more sense in 64 bits.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文