Java 什么是c=c&;(1<;<;位)您要做什么?

Java 什么是c=c&;(1<;<;位)您要做什么?,java,int,Java,Int,假设c是一个int,我不明白语句c=c&(1它将c中的所有位设置为零,除了位置bit处的位从右侧开始计数。该特定位保持不变。本质上,这是检查位置bit处的位是否设置的一种方法(c>0)或者不(c==0)它将c中的所有位设置为零,除了位置bit处的位从右侧开始计数。该特定位保持不变。本质上,这是检查位置bit处的位是否已设置(c>0)的一种方法除了位-c的第位之外,它屏蔽了一切 e、 g.如果c=27和bit=3: c = 27 = 00011011 (binary) (1 &l

假设c是一个int,我不明白语句
c=c&(1它将
c
中的所有位设置为零,除了位置
bit
处的位从右侧开始计数。该特定位保持不变。本质上,这是检查位置
bit
处的位是否设置的一种方法(
c>0
)或者不(
c==0

它将
c
中的所有位设置为零,除了位置
bit
处的位从右侧开始计数。该特定位保持不变。本质上,这是检查位置
bit
处的位是否已设置(
c>0
)的一种方法除了
-c
的第位之外,它屏蔽了一切

e、 g.如果
c=27
bit=3

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

请注意,结果要么等于
(1,它屏蔽了
-c
的第位以外的所有内容

e、 g.如果
c=27
bit=3

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

请注意,结果要么等于
(1)您对该语句到底不了解什么?@Oded我想这是他的问题。@JonH-我希望他能详细说明语句的哪一部分,或者如果语句是一个整体。它也可以写成
c&=(1)关于该语句,你到底不明白什么?@Oded,我想这是他的问题。@JonH-我希望他能对语句的哪一部分或整个语句进行扩展。它也可以写成
c&=(1你可以补充一点,它保持位的位置不变(即,它不会无条件地将其设置为1)你可以补充一点,它使位保持不变(也就是说,对于他们所说的,它没有无条件地将其设置为1)+1;)我想我理解..这个假设正确吗?:如果位=7,那么对于任何给定的c,结果是64或0?@KeesKoenen:
(对于他们所说的,它是1+1;)我想我明白了。这个假设正确吗?:如果位=7,那么对于任何给定的c,结果是64或0?@KeesKoenen:
(1