C语言 原码 反码 补码
1.任何类型的数据在计算机中都是以二进制补码形式存储 2.原码:最高位为符号位,用0表示正数,用1表示负数,其他位是相应数的2进制数 反码:除符号位外按位取反,0变为1,1变为0 补码:反码再加1 3.正数的原码 反码 补码都相同 65的原码 反码 补码都是:00000000 00000000 00000000 01000001 4.负数:以-65为例: 原码:10000000 00000000 00000000 01000001 反码:11111111 11111111 11111111 10111110 补码:11111111 11111111 11111111 10111111 5.得到相应的补码,需要逆推算出原码:先减1,除符号位外再取反,得到原码,再推算出相应结果
#include <stdio.h> int main(void) { char c; c = 0345; printf("%d\n",c); return 0; }