请输入图片描述

  • 字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)。八位二进制数最小为00000000,最大为11111111;

1位=1比特

1字=2字节

1字节=8位(8比特)

1字=16位

1字(word)= 2字节(byte)

1字节(byte) = 8位(bit)

①例如

十进制8    二进制是1000
整型字节是4,有32位(32比特)
0000 0000 0000 0000 0000 0000 0000 1000
从右往左写 前面不够的补零

②整型变量在内存中的储存是补码: 对于正数来说,,原码 反码 补码三者都一样。

负数:   反码:符号位不变,原码其余按位取反;
        补码:反码+1
例如:(负数的符号位是1)
-1:  原码:1000 0000 0000 0000 0000 0000 0000 0001
      反码:1111 1111 1111 1111 1111 1111 1111 1110
      补码:1111 1111 1111 1111 1111 1111 1111 1111
(这里符号位是第一位,也就是1,二进制遵循逢二进一,则1110加一则变成1111)
另一种情况:
      反码:1111 1111 1111 1111 1111 1111 1111 0111
      补码:1111 1111 1111 1111 1111 1111 1111 1000
(此时,因为二进制中没有2,所以当0111加1的时候,
  最后一位,倒数第二位,倒数第三位都要进一位,
  则第一位变成1,其他位变成0,结果为1000

示例

(0的原码按位取反变成-1的补码)

#include <stdio.h>
int main()
{
    int a = 0;
    printf("%d", ~a);
}

0000000000000000000000000000000(0的原码按位取反得反码)
1111111111111111111111111111111(0的反码也是-1的补码)

虽然整型变量在内存中的储存是补码,但是在计算机中是以原码的形式呈现出来的,所以要对补码-1,首位是个1则是个负数,然后变成反码,最后对反码按位取反得到原码。

最后修改:2021 年 12 月 20 日
如果觉得我的文章对你有用,请随意赞赏