int i;
i = 42;
System.out.println(Integer.toBinaryString(i));
System.out.println("第一位为:"+((i >> 0) & 1));
System.out.println("第二位为:"+((i >> 1) & 1));
System.out.println("第三位为:"+((i >> 2) & 1));
这是问题一。
i = 42;
System.out.println(Integer.toBinaryString(i));
System.out.println("第一位为:"+((i >> 0) & 1));
System.out.println("第二位为:"+((i >> 1) & 1));
System.out.println("第三位为:"+((i >> 2) & 1));
这是问题一。
int value=0;//修改后的值
int i=42;
int length=Integer.toBinaryString(i).length();
System.out.println("修改之前:"+Integer.toBinaryString(i));
int newI=0;
if (value==0)
{
newI=(int)((Math.pow(2,length)-1)-(Math.pow(2,modify-1)));
i=i & newI;
}
else if (value==1)
{
newI=(int)(Math.pow(2,modify-1));
i=i | newI;
}
System.out.println("修改之后:"+Integer.toBinaryString(i));异常处理自己写!
//bot pos
public boolean bitIs1(int value,int bitPos){
int temp = value >> (bitPos-1);
temp = temp & 0x0001;
return temp!=0;
}
public int changeBitValue(int value,int bitPos){
int temp = (int)(Math.pow(2,bitPos-1));
return value^temp;
}