簡體   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