一个小技巧,使用补码运算
#include <iostream>
void bprint(int p){
int i=0;
int bit1 = 1;
for (i=sizeof (p) * 8-1;i>=0; i--){
unsigned int x = (((bit1<<i)&p) !=0);
printf("%d", x);
}
}
int main ()
{
int x = 55;
int j = ~x + 1;
printf("x=%d b=",x);
bprint(x);
printf("\n");
printf("j=%d b=",j);
bprint(j);
printf("\n");
return 0;
}
输出:
x=55 b=00000000000000000000000000110111
j=-55 b=11111111111111111111111111001001