计算机的真值是指机器数所表示的实际数值。由于计算机中的数值是以二进制形式存储的,并且最高位是符号位,因此机器数的形式值并不等同于它的真值。
确定符号位 :首先识别机器数中的符号位。符号位为0表示正数,为1表示负数。计算数值部分:
去掉符号位后,剩余的部分即为数值部分。
转换为十进制:
将数值部分按位权展开,然后相加,得到该机器数对应的十进制数值。
示例
以二进制数 `1000 0101` 为例:
符号位:
1(表示负数)
数值部分:
`0000 0101`
转换为十进制
`0000 0000` 对应 0
`0000 0001` 对应 1
`0000 0010` 对应 2
`0000 0011` 对应 3
`0000 0100` 对应 4
`0000 0101` 对应 5
因此,二进制数 `1000 0101` 的真值为 -5。
编码形式
在计算机中,数值通常以原码、反码或补码的形式存储。
原码:
最高位是符号位,其余位表示数值。例如,二进制数 `1000 0101` 的原码为 `1000 0101`,表示 -5。
反码:
正数的反码与其原码相同,负数的反码为符号位不变,其余位取反。例如,二进制数 `1000 0101` 的反码为 `1111 1010`,表示 -5。
补码:
正数的补码与其原码相同,负数的补码为反码加1。例如,二进制数 `1000 0101` 的补码为 `1111 1011`,表示 -5。
总结
计算计算机的真值需要识别符号位,去掉符号位后得到数值部分,然后按位权展开并相加,最终转换为十进制数值。不同的编码形式(原码、反码、补码)会影响数值的表示和计算方式,但在计算真值时,最终目标是得到该机器数所表示的实际数值。