繁体   English   中英

16到32位整数转换与性能

[英]16 to 32 bit integer conversion vs performance

我想从数组中加载16位无符号整数,并将这些值用于C ++中的32位无符号计算。 我可以选择将值存储为16位数组(较少的内存)还是32位数组(更多的内存消耗)。

我的代码应该可以与常见的C ++编译器一起编译,并可以在尽可能多的体系结构上运行。 对于这些组合中的许多组合,将很难进行性能测量和汇编代码读取,因此我要求进行理论检查。

换句话说:在什么情况下16位到32位无符号整数转换通常会消耗CPU周期? 我何时可以期望使用减少内存的16位数组而不丢失CPU周期?

我认为所有主要架构都支持带有符号扩展和零扩展的内存负载。 x86,ARM和MIPS确实具有此类加载指令。 旧的体系结构和原始微控制器,尤其是8位和16位微控制器,可能没有这样的指令,因此可能需要多条指令才能获得相同的结果。 如果您不提那些,您可能根本不在乎。 因此,只需编写可移植的C / C ++代码并完成即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM