C-需要比较int的n个最低位是否相等 [英] C - Need to compare `n` lowest bits of an int for equality
本文介绍了C-需要比较int的n个最低位是否相等的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
C-需要比较int的最低位n
是否相等.
C - Need to compare n
lowest bits of an int for equality.
即n = 4;
xxxx1001 == xxxx1001(x无关)
xxxx1001 == xxxx1001 (x is don't care)
即n = 2; xxxxxx01 == xxxxxx01
I.e. n = 2; xxxxxx01 == xxxxxx01
想不出不用面具就可以做到的好方法,=).
Can't think of a nice way to do it without using masks, =).
推荐答案
根据位数创建掩码:
int mask = (1 << bits) - 1;
然后使用它来比较值:
if ((a & mask) == (b & mask))
这篇关于C-需要比较int的n个最低位是否相等的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文