#include <stdio.h> #include <stdlib.h> int main(void) { int i=-3;//4个字节(32位:4*8位) printf("%#X",i);//以16进制输出.输出结果是:0XFFFFFFFD请按任意键继续. . . printf("%X",i);//输出结果是:FFFFFFFD请按任意键继续. . . system("pause"); return 0; /* 计算机种的数据是以二进制存储的 求负整数的二进制: (3)10=(011)2 (前面补29个"1"101)2【负数前面补1】 */ }
注意:将一个负数二进制转换成十进制的问题:
一定要先将负数二进制前面的位数用1补齐,如果不把位数补齐的话,计算机会默认补0,这样这个负数二进制就会变成正的二进制,这样会导致程序错误。