当前位置:文档之家› 数制和编码

数制和编码

直接将每位十六进制数写成其对应的4位二进制数。
例 2-2 4BF.CH=.0100 1011 1111. 1100B
二进制 通过十六进制 十进制 例 2-3 1010 1110B .
= AEH =10×161 + 14 ×160 =174
1010 1110 1111B = AEFH =10×16 2 + 14 ×16 1 + 15 = 2560 +224 + 15 =2799
0x(2n11) 2n1x0
即 [x]补 2nx
(m2 o n)d
式中 2 n 1x (2 n 1 1 )
例 2-10 ① x = +126、y = + 5; ② x=-126、 y=-5,
用8位补码计算 x+y。
解 ① [x]补=01111110
② [x]补=10000010
[y]补= 00000101
同理 [-1]补=11、 [-3]补= 9 、… 、[-11]补=1
在n位二进制整数系统中模为 2n 。 补码的定义
x [x]补 2n|x|
0x(2n11) 2n1x0
即 [x]补 2nx
(m2 o n)d
式中 2 n 1x (2 n 1 1 )
补码的加减运算
[x ]补 2 nx (m2 o n)d
十六进制数:(逢十六进一)
0、1、2、3、4、5、6、7、8、9、 A、B、C、D、E、F
共十六个数码,.其中 A、 B、 C、 D、 E、 F
对应十进制数:
10、11、12、13、14、15
A5D.8H= 10×16 2 + 5×16 1 + 13×16 0 + 8×16-1 = 2560 + 80 + 13 + 0.5 = 2653.5
[y]补=11111011
01111110 + 00000101
10000011
[x+y]补=10000011 x+y = -1111101B<0
(结果错误)
10000010 + 11111011
01111101 [x+y]补= 01111101
x+y = +1111101B>0
(结果错误)
出错原因:① +126 + 5 = +131>+127 (正溢出) ② -126-5 =-131<-128 (负溢出)
溢出是指带符号数的补码运算溢出,用来判断带 符号数补码运算结果是否超出了补码所能表示的范围。 例如,字长为n位的带符号数,它能表示的补码范围 为−2n−1 +2n−1−1,如果运算结果超出此范围,就叫 补码溢出,简称溢出。
在n位二进制整数系统中模为 2n 。 补码的定义
回阅
x [x]补 2n|x|
[-32]补
代表无符号数 18
+ 206 224
纯小数情况 ….
例 2-9 x=-0.1010101, y=-0.0010001,
用补码求x+y。

[x]补= 1.0101011 [y]补=1.1101111
1. 0 1 0 1 0 1 1 + 1. 1 1 0 1 1 1 1 1 1. 0 0 1 1 0 1 0
第2章 计算机中的数制和编码
2.1 无符号数的表示及运算 2.2 带符号数的表示及运算 2.3 信息的编码 2.4 数的定点与浮点表示法
2.1 无符号数的表示及运算 .
十进制(Decimal)、二进制(Binary) 、 十六进制(Hexadeimal)数及其相互间的转换
十进制数: 1 2 3. 4 5


各位取反

100
最末1及其 之后0不变
[y]补 = 1 1 0 0 1 1 0 0
补码的概念及其应用
设标准时间为7时正,钟面时间为9时正。(快2小时) 校准时钟方法:
(1)逆时针拨2小时
9-2=7
(减法)
(2)顺时针拨10小时 9 + 10 = 12 + 7 = 7 (加法)
自然丢失
称“10”是“-2”对模“12”的补(码) 记为 [-2]补 = 1。2 + (-2) = 10 (mod 12)
[x+y]补=10000010
x+y=-1111110B =-126
② 双进位法…. 通过符号位和数值部分最高位的进位状态来判断 结果是否溢出。
CF OF O F C 7 C 6 数值位
=1
C7
b7
b6
C6
Σ
Σ
=1
=1
x7 y7 x6 y6
……
b1
b0
……
Σ
全加器 异或门
……
=1
x1 y1
Σ
M= 0 加
-0.1010101 +)-0.0010001
-0.1100110
模1×21=2自然丢失.
x+y =-0.1 1 0 0 1 1 0B
验算
结果正确
表2.1 8位二进制整数编码的各种表示方法对照
溢出及其判断方法 …
1. 进位与溢出 … 进位是指运算结果的最高位向更高位的进位,用 来判断无符号数运算结果是否超出了计算机所能表示 的最大无符号数的范围。
C 7 1 、 C 6 0 , O C 7 F C 6 1
有溢出,结果错误。
③ 双符号位法(变形补码法) 变形补码:正数的符号位用00表示;
负数的符号位用11表示。 通过运算结果的两个符号位的状态来判断结果 是否溢出: 若结果的双符号为01或10则溢出; 若结果的双符号为00或11则无溢出。
x-y = -0001100B =-0CH=-12
从上述补码运算规则和举例可以看出,在计算机 中用补码表示带符号数优点明显,且带符号数和无符 号数的加法和减法运算可用同一加法器完成,结果都 是正确的。例如:
机器运算 00010010 + 11001110 11100000
代表带符号数
[+ 18]补 + [-50]补
89 = 59H = 101 1001B
(89 ÷16 = 5 …… 9)
125 = 7DH = 111 1101B
(125 ÷16 = 7 …… 13 )
2.2 带符号数的表示及运算 机器数与真值 机器数:最高位0表示正数,1表示负数。 例如:. 表示真值 + 001 0010B .= +18 .
[55]补 =00110111
[66]补= 01000010
00110111
+01000010
01111001 C 7 0 、 C 6 0O C 7 F C 6 0
无溢出,结果正确。
[55+66]补=01111001
55 + 66 = +1111001B =79H=121
例 2-13 用补码求-14 +(-59),并判断结果是否发生溢出。
y = -0110100 [y]反= 11001011 [y]补= 11001100
例 2-6 x = +0110100 [x]补= 00110100
y= - 0110100 [y]反= 11001011 [y]补= 11001100
由负数的原码(或由真值)直接求其补码: .
y= - 0 1 1 0
有溢出,结果错误。
例 2-15 用补码求-93 +(-59),并判断结果是否发生溢出。
解 -93 = -5DH=-1011101B -59 = -3BH=-0111011B [-93]补=10100011 [-59]补 =11000101
10100011 + 、1 1 0 0 0 1 0 1
1 01101000
用8位补码计算x+y。 解 ① [x]补=01111011 ② [x]补=10000101
[y]补=00000011
[y]补=11111101
01111011
10000101
+ 00000011 01111110
+ 11111101 10000010
(无溢出,结果正确) (无溢出,结果正确)
[x+y]补=01111110 x+y= +1111110B = +126
=1
M=1 减
方式控制M x0 y0
1,有溢出 OFC7 C6 0,无溢出
有进位: 无进位:
C7=1, C6=1 C7=0, C6=0
若最高位的进位状态和次高位的进位状态不同
则溢出;若最高位的进位状态和次高位的进位状态
相同则无溢出。
例 2-12 用补码求 55 + 66 ,并判断结果是否发生溢出。 解 55 =37H=0110111B 66 =42H=1000010B
[x+y]补=[x]补+[y]补
式中 x、y 可为正数或负数。
证明: [x+y]补 = 2n +(x+y) (mod 2n) =(2n +x)+(2n +y)
= [x]补 + [y]补
在8位二进制整数系统中模为28 = 256 .
例 2-7 x =-4、y=-14,用补码求x+y。
解 [x]补=[-000 0100]补=1111 1100
二进制
十六进制
∵ 24 =16 ∴ 4位二进制数共有下列16种组合: 0000、0001、0010、0011、 …… 1110、1111 由此可见,每位十六进制数可对应4位二进制数。
0
1
0000 0001
相关主题