C语言二进制,原码补码反码

2018-03-17  本文已影响0人  RubyiOS

1.表示一个二进制正数5,0b 101,

通常8位1字节,这里需要引入原码 反码 补码的概念

8位下,101补全的表示方法是0000 0101;其中最左侧表示符号位。0表示正数,1表示负数;证书的原码,反码和补码都是一样的,俗称三位一体;

如果2字节表示二进制5,就是0000 0000 0000 0101

2.表示一个二进制负数5,-0b 101,

8位下表示原码方式:1000 0101,最左侧的1表示符号位(负数);

如果用2个字节空间表示就是1000 0000 0000 0101;

负数的反码就是符号位不动,其他位按位取反,1变0,0变1;上边的反码表示就变成1111 1111 1111 1010;

在反码的基础上再加1就表示当前负数的补码,1111 1111 1111 1011;

3.无论正数负数,在内存中都是以补码形式存储的

计算机是先开辟存储空间再进行存储的,下边有个例子;

正1和负1在计算机中的存储方式为 0000 0001 (正1)

                                                            1111 1111(负1),

如果两个数相加,就是 1 0000 0000,在计算机中2个8位相加,得到的还是8位,最左边的第九位(1)就舍去,得到的是0;

4.在计算机中已知补码,求反码的操作是对补码取反码在取补码,就得到原码,

1110 1011(补码)

1001 0100(反码)

1001 0101(原码)-21

上一篇 下一篇

猜你喜欢

热点阅读