C语言 原码 反码 补码

发布时间 2023-04-08 08:12:49作者: myrj
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;
}