【发布时间】:2010-02-26 01:56:08
【问题描述】:
我在编写程序时注意到我的许多int 类型变量从未超过十。我认为因为int 最短为 2 个字节(如果算上char,则为 1),所以我应该能够在一个短整数中存储 4 个unsigned ints,最大值为 15,我知道我可以使用>> 和<< 单独访问每一个:
short unsigned int SLWD = 11434;
S is (SLWD >> 12), L is ((SLWD << 4) >> 12),
W is ((SLWD << 8) >> 12), and D is ((SLWD << 8) >> 12)
但是,我不知道如何将它包含在类函数中,因为任何类型的 GetVal() 函数都必须是 int 类型,这首先违背了隔离位的目的。
【问题讨论】:
-
您存储了多少个这些小整数?你确定你会看到以这种方式包装它们的好处吗?你知道他们怎么说过早优化。如果您这样做是为了好玩,可以,但我敢打赌,您不会看到可衡量的性能提升。
-
用您要询问的语言标记您的问题总是好的...
-
我同意@Michael Petrotta 的观点。在许多情况下,增加额外的 OR 和位移指令的代码更改会增加内存使用量,而不是减少一些位所节省的内存。
标签: c++ memory-management bitwise-operators integer