2.1 数值数据的表示
无符号数和带符号数
1、无符号数
在计算机中需要把数的符号数码化。通常,约定二进制数的最高位为符号位,“0”表示正号,“1”表示负号。这种在计算机中使用的表示数的形式称为机器数。
2、带符号数
带符号数,即正、负数。在日常生活中,我们用“+”、“-”号加绝对值来表示数值的大小,用这种形式表示的数值在计算机技术中称为“真值”。
常见的机器数有原码、反码、补码等 3 种不同的表示形式(PS:对于真值 0,原码和反码各有两种不同的表示形式,而补码只有唯一的一种表示形式。)
1、原码
原码表示法是一种最简单的机器数表示法,用最高位表示符号位,符号位为“0”表示该数为正,符号位为“1”表示该数为负,数值部分与真值相同。(PS:在原码表示中,真值 0 有两种不同的表示形式:[+0]原=00000;[-0]原=10000)
2、反码
反码表示法与补码表示法有许多类似之处,对于正数,数值部分与真值形式相同;对于负数,将真值的数值部分按位取反(即符号位不变,其余按位取反)。(PS:在反码表示中,真值 0 也有两种不同的表示形式:[+0]反=00000;[-0]反=11111)
3、补码
补码的符号位表示方法与原码相同,其数值部分的表示与数的正负有关:对于正数,数值部分与真值形式相同;对于负数,将真值的数值部分按位取反,且在最低位上加 1(也就是符号位不变,其余按位取反再加一)。(PS:在补码表示中,真值 0 的表示形式是唯一的:[+0]补=[-0]补=00000)
由真值、原码转换为补码(在真值为负数的情况下,正数的补码为其本身)
1、[X]原除掉符号位外的各位取反加“1”(符号位不变,其余位按位取反再加一)。
2、自低位向高位,尾数的第一个“1”及其右部的“0”保持不变,左部的各位取反,符号位保持不变。
真值与 3 种机器数间的对照