/*打印二进制位的函数*/
void printB(int i){
printf("number %4d" ,i);
int a;
for( a = 31; a >=0; a--){
int k = (i >>a) &1; //有些符号位可能会是1
printf("%d" ,k);
}
printf("/ n");
}
void main(){
printB(5);
printB(6);
printB(-6);
}
程序运行结果:
number 5 00000000 00000000 00000000 00000101
number 6 00000000 00000000 00000000 00000110
number -6 11111111 11111111 11111111 11111010 --这是-6在计算机中的补码形式
-6在计算机中的补码形式正好是5的反码。
实际上:有符号数是以补码表示的。整数在计算机中是以补码形式存放的。!
另外记得:无符号的打印用 %u