【发布时间】:2017-09-10 19:28:51
【问题描述】:
假设我有一些 int x。我只想打印 x 的前 5 位。我怎样才能做到这一点?我听说我可以做类似的事情
printf("%d", x & 0x05);
打印 x 的前五位,但这只是在我的函数中输出 0。
【问题讨论】:
-
要获取最低的五个位,请写入
x & ((1 << 5) - 1)。对于最高五位,还需要使用右移运算符(>>)。 -
0x05 只是第一位和第三位。低 5 是 0x1f。
-
掩码
0x05只会隔离位0和2。要隔离位0到4,请使用掩码0x1F -
如果你做数学,你需要 1f