一、计算机体系架构
1.1、计算机架构
1.2、内存
1.3、计算机中的进制
1.3.1、二进制
-
定义:二进制是一种仅使用两个数字(0和1)表示值的数制系统。它是计算机内部数据处理和存储的基础。
-
特性:
- 每一位的权重是2的幂次。最右边的位(最低位)对应 2020、其左边的位对应 2121、2222,依此类推。
- 例如,二进制数
1011表示 - 1×2^3+0×2^2+1×2^1+1×2^0=8+0+2+1=11(十进制)。
1.3.2、八进制
-
定义:八进制是以8为基数的数制,使用数字0到7表示一个数值。
-
特性:
- 每一位的权重是8的幂次,从右往左分别是 8080、8181、8282等。
- 例如,八进制数
17表示 1×8^1+7×8^0=8+7=15(十进制)。 - 八进制常用于简化表现二进制数据,如文件权限。
1.3.3、十进制
-
定义:十进制是我们日常生活中最常用的数制,基数为10,使用数字0到9。
-
特性:
- 每一位的权重是10的幂次。
- 例如,十进制数
345表示 - 3×10^2+4×10^1+5×10^0=300+40+5=345。
- 十进制是最直观的计算方式,广泛应用于日常生活和商业活动中。
1.3.4、十六进制
-
定义:十六进制是一种以16为基数的数制,使用数字0到9和字母A到F表示数值,其中A到F分别代表10到15。
-
特性:
- 每一位的权重是16的幂次。
- 例如,十六进制数
1A3表示 1×16^2+10×16^1+3×16^0=256+160+3=419(十进制)。 - 十六进制常用于计算机科学,因为它可以更紧凑地表示二进制数据。一个十六进制位能够表示四个二进制位,简化了计算机内存中的数据表示。
二、数字在计算机中的存储
2.1、原码
-
定义:原码是用二进制数直接表示数值及符号的编码方式。
-
表示:最高位代表符号位(0表示正数,1表示负数),其他位表示数值部分。
-
例子:
- 正数
5的原码(假设用8位表示)是00000101。 - 负数
-5的原码是10000101。
- 正数
2.2、反码
-
定义:反码是对原码的一种表示方式,用于简化负数的运算。
-
表示:
- 正数的反码与原码相同。
- 负数的反码是将原码中的每一位(除了符号位)取反:0变1,1变0。
-
例子:
- 正数
5的反码是00000101。 - 负数
-5的原码是10000101,所以反码为11111010。
- 正数
2.3、补码
-
定义:补码是对反码的一种优化,广泛用于计算机中表示整数。
-
表示:
- 正数的补码等同于原码和反码。
- 负数的补码是反码加1。
-
例子:
- 正数
5的补码是00000101。 - 负数
-5的反码是11111010,所以补码为11111011(反码加1)。
- 正数
2.4、正数的原码、反码、补码
以正数 5 为例(8位表示):
- 原码:
00000101 - 反码:
00000101 - 补码:
00000101
2.5、负数的原码、反码、补码
以负数 -5 为例(8位表示):
- 原码:
10000101 - 反码:
11111010 - 补码:
11111011
2.6、正数和负数相加
进行正数和负数相加时,通常使用补码进行运算。以下是加法步骤:
- 将正数和负数都转化为补码。
- 逐位相加,得到结果。如果有进位,考察最高位的进位。
- 如果结果是负数,则根据补码规则得到相应的原码表示。
例子 :
10+(-5)
10:
原码: 0000 1010
反码: 0000 1010
补码: 0000 1010
-5:
原码: 0000 0101
反码: 1111 1010
补码: 1111 1011
10 + (-5):
-10补码: 0000 1010
5 补码: 1111 1011
----------------------------------
结果的补码: 1 0000 0101
1超出存储空间: 所以舍去
所以结果为 0000 0101
-10+5
-10:
原码: 1000 1010
反码: 1111 0101
补码: 1111 0110
5:
原码: 0000 0101
反码: 0000 0101
补码: 0000 0101
-10 + 5:
-10补码: 1111 0110
5 补码: 0000 0101
----------------------------------
结果的补码: 1111 1011
需要将结果转换为原码:
补码: 1111 1011
反码: 1111 1010
原码: 1000 0101 == -5
三、思维导图