int main()
{
unsigned char a = 0x56;
unsigned char b = 0x80;
unsigned char c = 0x00;
int i;
for( i=0; i<8; i++)
{
if (a & 0x01)
c |= b;
b >>= 1;
a >>= 1;
}
class Test041702 {
public static void main(String srgs[]) {
int iNear=100;//你需要判断的数
int i=0;
for(i=0;i<iNear;i++){
if(power(2,i)>iNear)//找到第1次大于iNear的值
break;
}
int i1=iNear-power(2,i-1);
int i2=power(2,i)-iNear;
if(i1>i2)
System.out.println(""+i);
if(i1<i2)
System.out.println(""+(i-1));
}
public static int power(int m,int n){//m^n
if(n==0)
return 1;
else if(n==1)
return m;
else
return m*power(m,n-1);
}
}