一 . 微型计算机基础
1 、 原码
•
二进制的最高位为符号位, 0 正 1 负,
其余各位同无符号二进制。
[125D]
原
=0 1111101
[-125D]
原
=1 1111101
符号位 数值位
•
原码表示简单易懂,但若是两个异号数相加 ( 或两
个同号数相减 ), 就要做减法。为了把减法运算转
换为加法运算就引进了反码和补码。
•
原码表示数的范围: -127─+127 ,且 00000000 和
10000000 含义相同。
㈠、数值数据
2、反码
•
正数的反码和原码相同,负数的反码为
其原码将数值位求反,即 0 变 1 , 1 变
0 。
[125D]
反
= 0 1111101
[-125D]
反
= 1 0000010
符号位 数值位
反码表示数的范围: -127─+127 ,且
00000000 和 11111111 含义相同。
3 、补码
•
正数的补码和原码相同,负数的补码
为其原码将数值位求反 +1 。
[125D]
补
= 0 1111101
[-125D]
补
= 1 0000011
符号位 数值位
补码表示数的范围: -128─+127 ,最
主要的优点是在加、减运算时不需要判
断符号位,所以 CPU 在进行有符号数的
加、减运算时用的是补码。
4 、符号扩展
•
在数据处理时 , 有时需要把 8 位二进制数扩
展成 16 位二进制数 , 当要扩展的数是无符
号数时 , 可在最高位前扩展 8 个 0 。如果要
扩展的数是补码形式的有符号数 , 那么 , 就
要进行符号位的扩展,符号扩展后,其结果
仍是该数的补码。
•
例: 21 的 8 位二进制补码为: 00010101
符号扩展后 21 的 16 位二进制补码 000000000001010
1 。
评论0