第六章计算机的运算方法 61无符号数和有符号数 62数的定点表示和浮点表示 6.3定点运算 64浮点四则运算 65算术逻辑单元
第六章 计算机的运算方法 6.1 无符号数和有符号数 6.3 定点运算 6.2 数的定点表示和浮点表示 6.4 浮点四则运算 6.5 算术逻辑单元
例61设机器数字长为8位(其中一位为符号位61 对于整数,当其分别代表无符号数、原码、补码和 反码时,对应的真值范围各为多少? 无符号数原码对应补码对应反码对应 二进制代码对应的真值 的真值 的真值 的真值 00000000 0 +0 00000001 +1 +1 +1 00000010 2 +2 +2 +2 0111111l 127 +127 +127 +127 10000000 128 128 127 10000001 29 127 -126 11111101 53 -125 2 111110 126 111111l 55 127 321 0
例6.11 00000000 00000001 00000010 … 01111111 10000000 10000001 11111101 11111110 11111111 … 128 129 -0 -1 -128 -127 -127 -126 二进制代码 无符号数 对应的真值 原码对应 的真值 补码对应 的真值 反码对应 的真值 0 1 2 127 … 253 254 255 … -125 -126 -127 … -3 -2 -1 … -2 -1 -0 … +0 +1 +2 +127 … +0 +1 +2 +127 … +0 +1 +2 +127 … 6.1 +0 设机器数字长为8 位(其中一位为符号位) 对于整数,当其分别代表无符号数、原码、补码和 反码时,对应的真值范围各为多少?
例612已知叫补求[y补 61 解:设U补=ny1n2…yn 四=0.y丿2:yn Ⅳy连同符号位在内,每位取反,末位加1 即得[y补 I-yl林=1y2…yn+2”1 Ⅱ>D=1.yy… Ly补连同符号位在内,每位取反,末位加1 即得[y补 I-yl补=0.y1乃2…y+2
例6.12 解: 已知 [y]补 求[ y]补 <Ⅰ> [y]补 = 0. y1 y2 … yn y = 0. y1 y2 …yn y = 0. y1 y2 …yn [ y]补 = 1.y1 y2 yn + 2 … -n <Ⅱ> [y]补 = 1. y1 y2 … yn [ y]原 = 1.y1 y2 yn + 2 … -n y = (0. y1 y2 yn + 2 … -n) y = 0. y1 y2 yn + 2 … -n [ y]补 = 0. y1 y2 …yn + 2-n 设 [y]补 = y0 . y1 y2 …yn 6.1 每位取反, 即得[ y]补 [y]补连同符号位在内, 末位加 1 每位取反, 即得[ y]补 [y]补连同符号位在内, 末位加 1
5.移码表示法 61 补码表示很难直接判断其真值大小 如十进制 二进制 补码 x=+21 +10101 0,101016错 y=-21 10101 1,0101大 x=+31 +11111 0,1错 y=-31 -11111 1,00001d大 5 x+2 +10101+100000=110101。大 正确 10101+100000=001011 +1111100000=l1l1大 正确 11111+100000=000001
5. 移码表示法 补码表示很难直接判断其真值大小 如 十进制 x = +21 x = –21 x = +31 x = –31 x + 2 5 +10101 + 100000 +11111 + 100000 10101 + 100000 11111 + 100000 大 大 错 错 大 大 正确 正确 0,10101 1,01011 0,11111 1,00001 +10101 –10101 +11111 –11111 = 110101 = 001011 = 111111 = 000001 二进制 补码 6.1
(1)移码定义 61 xl移=2"+x(2>x≥2") x为真值,n为整数的位数 移码在数轴上的表示 0 移码 真值 如x=10100 xl移=2+10100=1,10100 用逗号将符号位 x=-10100 和数值位隔开 x】移=2-10100=0,01100
(1) 移码定义 x 为真值,n 为 整数的位数 移码在数轴上的表示 [x]移码 2 n+1 2 –1 n 2 n –2 –1 n 0 0 真值 如 x = 10100 [x]移 = 25 + 10100 用 逗号 将符号位 x = –10100 和数值位隔开 [x]移 = 25 – 10100 [x]移 = 2n + x(2 n>x ≥ 2 n) = 1,10100 = 0,01100 6.1