C语言 原码 反码 补码

Posted myrj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

 

C语言:整数保存 原码 反码 补码

#include <stdio.h>
/*
本题结果为:-4
short类型占据2字节 ;赋值后实际占据了3个字节,所以有溢出警告提示,结果只保留0xfffc
保存二进制:1111 1111 1111 1100 (补码)
减1:       1111 1111 1111 1011
取反:      1000 0000 0000 0100
原码:      1000 0000 0000 0100对应十进制为-4 
*/
main()
{
    short x=0xafffc;
    printf("%d",x);
    getchar();
 }

 

以上是关于C语言 原码 反码 补码的主要内容,如果未能解决你的问题,请参考以下文章

C语言原码反码补码与位运算.

C语言原码 反码 补码详解

C语言:整数保存 原码 反码 补码

初始C语言

11)C语言之正负数的原码反码补码

C语言输入一个整数,求它的原码,反码,补码值