Java 为什么它会得到这样的一个位?
我正在查找应该从int中获取一个位的代码部分。Java 为什么它会得到这样的一个位?,java,bit-manipulation,bit,Java,Bit Manipulation,Bit,我正在查找应该从int中获取一个位的代码部分。 详情如下: private int getBit( int token, int pos){ return ( token & ( 1 << pos ) ) != 0 ? 1 : 0; } private int getBit(int-token,int-pos){ return(token&(1您的版本返回0或1您的版本不返回位置pos处的位值。它返回值0或2^(pos-1)。您的版本错误。当您执行 retu
详情如下:
private int getBit( int token, int pos){
return ( token & ( 1 << pos ) ) != 0 ? 1 : 0;
}
private int getBit(int-token,int-pos){
return(token&(1您的版本返回0或1您的版本不返回位置pos处的位值。它返回值0或2^(pos-1)。您的版本错误。当您执行
return token & ( 1 << pos );
returntoken&(1当然,您可以使用
(token >> pos) & 1
第二个版本将返回1一种避免分支但有效的替代方法:return(token>>pos)&1
。这是正确的。如果您想更改较少的现有代码,也可以执行(token&(1
(token >> pos) & 1