什么是c = c& (1<< bit)吗?

时间:2012-01-25 19:31:50

标签: java int

鉴于c是一个int,我不明白语句c = c & (1 << bit)的作用。任何帮助都非常感谢!

2 个答案:

答案 0 :(得分:11)

除了bit的{​​{1}}之外,它会掩盖所有内容。

e.g。如果cc = 27

bit = 3

以及 c = 27 = 00011011 (binary) (1 << bit) = 8 = 00001000 result = 00001000 = 8

bit = 2

请注意,结果将等于 c = 27 = 00011011 (binary) (1 << bit) = 4 = 00000100 result = 00000000 = 0 (2的幂)或(1 << bit)

答案 1 :(得分:6)

它将c中的所有位设置为零,但位置bit的位从右侧开始计数除外。该特定位保持不变。从本质上讲,这是检查位置bit上的位是否设置(c > 0)或不设置c == 0

的一种方法