【发布时间】:2013-12-15 07:26:40
【问题描述】:
我目前正在开发一个程序来模拟 C 中的缓存。我一直在研究,我知道如何设置和测试单个位,但是我如何从 64 位十六进制中间提取 x 数量的位地址?
例如,我有一个 64 位十六进制地址。前 2 位专用于块偏移,接下来的 2 位专用于设置索引,最后 60 位专用于标签。如何将前 2 位提取为无符号整数?我怎样才能提取接下来的 2 位?
编辑:这只是一个例子。我希望有一个解决方案可以让您在地址中的任何位置获取任意数量的位
第二次编辑:当我说前 2 位时,我指的是最低有效位。我很抱歉。
【问题讨论】:
-
“前 2 位”中的短语“第一个”可以解释:您是指前 2 个最低有效位还是前两个最高有效位?最好使用“最不重要”或“最重要”而不是“第一”。 2 个答案反映了这种困惑。
标签: c caching bit-manipulation