第2章信息表示
第2章计算机中的信息表示习题参考答案-汇编语言与计算机组成原理 答案

第2章计算机中的信息表示习题参考答案1. 设机器数长为8位(含1位符号位在内),写出对应下列各真值的原码、补码和反码。
6413−, 12829,100,-872. 写出下列各数的原码、反码、补码表示(用8位二进制数),其中MSB 是最高位(又是符号位),LSB 是最高位。
如果是小数,小数点在MSB 之后;如果是整数,小数点在LSB 之后。
(1) -35/64 (2)23/128 (3) –127 (4)用小数表示-1 (5)用整数表示-1 解:(1)-35/64 = -0.100011原码1.1000110 反码1.0111001 补码1.0111010(2)23/128= 0.0010111原码0.0010111 反码0.0010111 补码0.0010111 (3) –127=1111111原码11111111 反码10000000 补码10000001 (4) 用小数表示-1 补码1.0000000 (5) 用整数表示-1原码10000001 反码11111110 补码1111111113. 己知[X],求[X]和X .补原4. 当十六进制数9B和FF分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少(设机器数采用一位符号位)。
答:5. 有一个字长为32位的浮点数,符号位1位,阶码8位,用移码表示,尾数23位,用补码表示;基数为2。
请写出:(1)最大数的二进制表示;(2)最小数的二进制表示; (3)规格化数所能表示数的范围。
解:用IEEE754格式(E的取值范围:1~254,留出全0和全1分别表示0和无穷大)31 30 23 22 20 0S E M(1) 最大数的二进制表示:0 11111110 11111111111111111111111即 2127(2-2-23)(2) 最小数的二进制表示:1 11111110 11111111111111111111111即 - 2127(2-2-23)(3) 规格化数所能表示数的范围:最小的正数:0 00000001 00000000000000000000001 即2-126(1+2-23)绝对最小的负数:1 00000001 00000000000000000000001 即-2-126(1+2-23)所以范围是: -2127(2-2-23)至-2-126(1+2-23) ,2-126(1+2-23)至2127(2-2-23)6. 将下列十进制数表示成IEEE754标准的32位浮点规格化数。
计算机组成原理 第2章

《计算机组成原理与实验》 冶金工业出版社
计算机组成原理——第 2章
原码、反码与补码
• 例2:已知[x]补=11101110,求[-x]补、[x]反、[x]原及真值x。 解:[-x]补=00010010 ([x]补取反加1) [x]反=11101101 ([x]补减1) [x]原=10010010 ([x]原低7位取反) 真值x=-0010010B=-12H=-18D
《计算机组成原理与实验》 冶金工业出版社
计算机组成原理——第 2章
补码表示法
• 对定点整数,补码的定义是: X [X]补= 2n > x 0 (mod 2n+1)
2n+1+x=2n+1-|x|
0 > x -2n
《计算机组成原理与实验》 冶金工业出版社
计算机组成原理——第 2章
补码表示法
• 利用补码可以将减法运算变成加法运算来实现。但是 根据补码定义,求负数的补码要从2减去|X|。为了用加 法代替减法,结果还得在求补码时作一次减法,这显 然是不方便的。可以利用反码的方式解决负数的求补 问题。 • 另一方面,利用补码实现减法运算,可以和常规的加 法运算使用用一加法器电路,从而简化了计算机的设 计。
移码表示法
• 移码的定义:[X]移=2n +X (-2n = <x< 2n)n为阶码数值位 (除符号位)
• 移码的计算:先求出X的补码,再对其符号位取反或直接利用定 义计算。
《计算机组成原理与实验》 冶金工业出版社
计算机组成原理——第 2章
移码的特点
(1)在移码中,最高位为“0”表示负数,最高位为“1”表示正数。 (2)移码为全0时,它所对应的真值最小,为全1时,它所对应的真 值最大。因此,移码的大小比较直观地反映了真值的大小,这有 助于比较两个浮点数阶码的大小。 ( 3 ) 真 值 0 在 移 码 中 的 表 示 形 式 是 唯 一 的 , 即 [+0] 移 =[-0] 移 = 100…0。 (4)移码把真值映射到一个正数域,所以可将移码视为无符号数, 直接按无符号数规 则比较大小。 (5)同一数值的移码和补码除最高位相反外,其他各位相同。
第二章-信息论基本概念(3)

H ( X m1 / X1 X 2 X m )
这表明:m阶马尔可夫信源的极限熵H 就等于m阶条件熵,记为H m 1
akm )
设状态 Ei (ak1 ak2 akm ),信源处于状态Ei时,再发出下一个符号akm1
此时,符号序列 (ak2 ak3 a ) km1 就组成了新的信源状态
Ej (ak2 ak3 a ) km1 ,这时信源所处的状态由 Ei 转移到 Ej
状态转移图(香农线图)
0:0.5 E1
1:0.5 E3
1
0:0.6
E2
1:0.4
【注】E1、E2、E3是三种状态,箭头是指从一个状态转移到另
一个状态,旁边的数字代表发出的某符号和条件概率p(ak/Ei) 。 这就是香农提出的马尔可夫状态转移图,也叫香农线图。
二、马尔可夫信源
若信源输出的符号和信源所处的状态满足以下两个条 件,则称为马尔可夫信源:
a1 a2
p(sl
E2
/ xl
a3
sl1 E1 ) 0 sl1 E1 ) 1 sl1 E1 ) 1 sl1 E1 ) 0
可求得状态的一步转移概率:
1
2
1 4
0
1 4
0
0
1 2
1 2
0
0
p(E j
/
Ei
)
0
3
1
0
0
44
0
0
0
0
1
0
0
0
3 4
1 4
此信源满足马尔可夫的 两个条件,所以是马尔可夫 信源,并且是齐次马尔可夫 信源。
对于这个随机序列,若有:
p(xn Sin | xn1 Sin1 ,..., x1 Si1 ) p(xn Sin | xn1 S ) in1
第二章 信息论基本概念

一个信源总是包含着多个符号消息,各个符号消息又按概率 空间的先验概率分布,它的不确定度是各个符号的不确定度的数 学期望(即概率加权的统计平均值) 它的熵(平均不确定度)H(X)定义为: H(X)= E[I(x)]= P(X)I(X) =- P(X)log2P(X) X
X
若信源X中的符号的概率空间简化表示为: X1,X2, „,XN X,PX= P1, P2,„, PN 则熵(平均不确定度)H(X)可写成: N H(X)=- PilogPi 注意:∵ I(X)为非负, P(X)为非负,且0≤P(X)≤1 ∴ H(X)也为非负
0.8 0.2
其中X1表示摸出的球为红球事件,X2表示摸出的球为白球事件
若告知摸出的是红球,则事件的自信息量为 I(X1)=-logP(X1)=-log20.8 bit 若告知摸出的是白球,则事件的自信息量为 I(X2)=-logP(X2)=-log20.2 bit 若取回后又放回摸取,如此摸取n此,红球出现的次数nP(X1), 白球出现的次数为nP(X2),则总信息量为 I=nP(X1)I(X1)+nP(X2)I(X2) 而平均随机摸取一次所获得的信息量为 H(X)= 1/n [nP(X1)I(X1)+nP(X2)I(X2)] =-[P(X1)logP(X1)+P(X2)logP(X2)] 2 =- P(Xi)logP(Xi)
符号xi对联合事件符号yj zk之间的互信息量定义为: I(xi ; yj zk)= logP(xi|yj zk)/ P(xi) „„„„*
三. 条件互信息量 含义:在给定zk条件下,xi与yj之间的互信息量
条件互信息量I(xi ; yj|zk)定义为: I(xi ; yj|zk)= logP(xi|yj zk)/ P(xi|zk) 从上式,可使*式写成: I(xi ; yj zk)= I(xi ; zk) + I(xi ; yj|zk) 推导如下: I(xi ; yj zk)= log P(xi|yj zk)/ P(xi)
信息论第二章信息的度量

log
p(ai b j ) p(ai ) p(b j )
(i 1,2,, n; j 1,2,, m)
将事件互信息量的概念推广至多维空间:
1 (2)在二维联合集X Y上的条件分布概率为 p( y j xi ) ,这一 12 事件提供给甲的信息量为条件自信息量 I(yj︱xi) = -log p(yj︱xi) = log12 = 3.585(比特)
2.1.2 互信息量和条件互信息量
1.互信息量 信 源 符 号 X={x1,x2,…,xI} , xi∈{a1,a2,…,ak} ,i = 1,..., I。 信 宿 方 接 收 到 符 号 Y = {y1,y2,…,yJ}, yj∈{b1,b2,…,bD},j = 1, 2, …,J。 {x1,x2,…xI} {y1,y2,…yJ}
自信息量
自信息量I(xi)代表两种含义:
1.事件xi发生以前,表示事件发生的先验不确定性
2.当事件xi发生以后,表示事件xi所能提供的最大 信息量(在无噪情况下)
2.联合自信息量
其中 0 p(aib j ) 1(i 1,2,, n; j 1,2,, m)
XY a1b1 , , a1bm , , anb1 , , anbm P( XY ) p(a1b1 ), , p(a1bm ), , p(anb1 ), , p(anbm )
(2-7)
I ( xi ; y j ) log
p( y j xi ) ( y j )
I ( y j ) I ( y j xi )
计算机系统导论——读书笔记——第二章信息的表示和处理

计算机系统导论——读书笔记——第⼆章信息的表⽰和处理第⼆章信息的表⽰和处理2.1 信息存储2.1.1 ⼗六进制2.1.2 字数据⼤⼩2.1.3 寻址和字节顺序1.地址:对象所使⽤的字节中最⼩的地址2.⼤端法:最⾼有效字节在前⼩端法:最低有效字节在前(⼤多Intel兼容机使⽤)3.发送⽅机器(内部代码)——>⽹络应⽤程序(⽹络标准)——>接收⽅机器(内部代码)4.⼩程序——打印程序对象的字节表⽰1 #include <stdio.h>2using namespace std;34 typedef unsigned char * byte_pointer;//定义类型:指向unsigned char的指针56void show_byte(byte_pointer start, size_t len){7 size_t i;8for(i = 0; i < len; ++i)9 printf(" %.2x", start[i]);//%.2x表⽰整数必须⽤⾄少两个数字的⼗六进制格式输出10 printf("\n");11 }1213void show_int(int x){14 show_byte((byte_pointer) &x, sizeof(int));15 }1617void show_float(float x){18 show_byte((byte_pointer) &x, sizeof(float));19 }2021void show_double(double x){22 show_byte((byte_pointer) &x, sizeof(double));23 }2425void show_pointer(void * x){//void*是特殊类型的指针,没有相关联的类型信息26 show_byte((byte_pointer) &x, sizeof(void *));27 }2829int main(){30int x;31float y;32double z;33while(scanf("%d %f %lf", &x, &y, &z)){34 show_int(x);35 show_float(y);36 show_double(z);37 show_pointer(&x);38 show_pointer(&y);39 show_pointer(&z);40 }41return0;42 }输⼊111-1-1.0-1.0123451.0011.001输出01 00 00 0000 00 80 3f00 00 00 00 00 00 f0 3f98 f5 bf ef fe 7f 00 0094 f5 bf ef fe 7f 00 0088 f5 bf ef fe 7f 00 00ff ff ff ff00 00 80 bf00 00 00 00 00 00 f0 bf98 f5 bf ef fe 7f 00 0094 f5 bf ef fe 7f 00 0088 f5 bf ef fe 7f 00 0039 30 00 00c5 20 80 3f6a bc 74 93 18 04 f0 3f98 f5 bf ef fe 7f 00 0094 f5 bf ef fe 7f 00 0088 f5 bf ef fe 7f 00 00我的电脑是MaxOS,可以看出它是64位系统,采⽤⼩端法表⽰5.可以通过在终端(mac是terminal,windows是命令⾏⼯具)执⾏命令man ascii得到⼀张ASCII字符码表,回车后运⾏结果如下ASCII(7) BSD Miscellaneous Information Manual ASCII(7)NAMEascii -- octal, hexadecimal and decimal ASCII character setsDESCRIPTIONThe octal set:000 nul 001 soh 002 stx 003 etx 004 eot 005 enq 006 ack 007 bel010 bs 011 ht 012 nl 013 vt 014 np 015 cr 016 so 017 si020 dle 021 dc1 022 dc2 023 dc3 024 dc4 025 nak 026 syn 027 etb030 can 031 em 032 sub 033 esc 034 fs 035 gs 036 rs 037 us040 sp 041 ! 042 " 043 # 044 $ 045 % 046 & 047 '050 ( 051 ) 052 * 053 + 054 , 055 - 056 . 057 /060 0 061 1 062 2 063 3 064 4 065 5 066 6 067 7070 8 071 9 072 : 073 ; 074 < 075 = 076 > 077 ?100 @ 101 A 102 B 103 C 104 D 105 E 106 F 107 G110 H 111 I 112 J 113 K 114 L 115 M 116 N 117 O120 P 121 Q 122 R 123 S 124 T 125 U 126 V 127 W130 X 131 Y 132 Z 133 [ 134 \ 135 ] 136 ^ 137 _140 ` 141 a 142 b 143 c 144 d 145 e 146 f 147 g150 h 151 i 152 j 153 k 154 l 155 m 156 n 157 o160 p 161 q 162 r 163 s 164 t 165 u 166 v 167 w170 x 171 y 172 z 173 { 174 | 175 } 176 ~ 177 delThe hexadecimal set:00 nul 01 soh 02 stx 03 etx 04 eot 05 enq 06 ack 07 bel08 bs 09 ht 0a nl 0b vt 0c np 0d cr 0e so 0f si10 dle 11 dc1 12 dc2 13 dc3 14 dc4 15 nak 16 syn 17 etb18 can 19 em 1a sub 1b esc 1c fs 1d gs 1e rs 1f us20 sp 21 ! 22 " 23 # 24 $ 25 % 26 & 27 '28 ( 29 ) 2a * 2b + 2c , 2d - 2e . 2f /30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 738 8 39 9 3a : 3b ; 3c < 3d = 3e > 3f ?40 @ 41 A 42 B 43 C 44 D 45 E 46 F 47 G48 H 49 I 4a J 4b K 4c L 4d M 4e N 4f O50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W58 X 59 Y 5a Z 5b [ 5c \ 5d ] 5e ^ 5f _60 ` 61 a 62 b 63 c 64 d 65 e 66 f 67 g68 h 69 i 6a j 6b k 6c l 6d m 6e n 6f o70 p 71 q 72 r 73 s 74 t 75 u 76 v 77 w78 x 79 y 7a z 7b { 7c | 7d } 7e ~ 7f delThe decimal set:0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 '40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 /48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 756 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ?64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 delFILES/usr/share/misc/asciiHISTORYAn ascii manual page appeared in Version 7 AT&T UNIX.BSD June 5, 1993 BSD(END)2.1.4 表⽰字符串1.⼗进制数字‘y’的ascii码正好是0x3y2.strlen(str)函数不计算终⽌的空字符(ascii码为0x00)3.字符编码⽅式:(1)ASCII (American Standard Code for Information interchange)(2)Unicode (Unique Code)(3)UTF-8 / UTF-16 / UFT-32 (Unicode Transformation Format)2.1.5 表⽰代码2.1.6 布尔代数(Boolean Algebra)简介1.布尔运算&对|有分配律:a&(b|c) = (a&b)|(a&c)布尔运算|对&有分配律:a|(b&c) = (a|b)&(a|c)2.位向量:长度为w,由0和1组成的串应⽤:表⽰有限集合/压位运算(例:[01101010]表⽰集合{1,3,5,6}),位向量掩码/屏蔽信号3.布尔环(Boolean ring),类似于整环/整数环“加法”逆元:^类似于+; 每个整数x有加法逆元-x使得x+(-x)=0,类似地,每个布尔元素a都有“加法逆元”a使得a^a=0; 有趣的性质:(a^b)^a=b 1//这是⼀个不需要第三个量的交换函数,不过它并没有性能上的优势2void inplace_swap(int *x, int *y){//*x = a, *y = b3 *x = *x ^ *y;//*x = a^b, *y = b4 *y = *x ^ *y;//*x = a^b, *y = a5 *x = *x ^ *y;//*x = b, *y = a6 }2.1.7 C语⾔中的位级运算:&, |, ^, ~2.1.8 C语⾔中的逻辑运算: &&, ||, !2.1.9 C语⾔中的移位运算:>>, <<1.逻辑右移(⾼位补0,⽆符号数进⾏逻辑右移)算数右移(⾼位补符号位,有符号数进⾏算数右移)(1)初级运算符[]().->(2)单⽬运算符(3)算数运算符(4)移位运算符(5)关系运算符(6)位级运算符(7)逻辑运算符(8)赋值运算符2.2 整数表⽰2.2.1 整形数据类型2.2.2 ⽆符号数的编码(unsigned)2.2.3 补码编码(two's-complement)1.<limits.h>库:INT_MIN, INT_MAX, UINT_MAX<stdint.h>库:intN_t, UintN_t (t = 16,32,64等)(我在xcode上没有include这两个库也能直接使⽤INT_MIN、int32_t等)2.有符号数的表⽰⽅法(1)补码(two's-complement):最⾼位权重为-2^(w-1)(2)反码(ones' complement):最⾼位权重为-(2^(w-1)-1)(3)原码(sign-magnitude):最⾼位为1表⽰所有其他位权重为负注:(2)(3)中0的表⽰法不唯⼀,有+0和-0两种2.2.4 有符号数和⽆符号数之间的转换(可能)改变数值,但不改变位表⽰1.补码转换为⽆符号数(w位):TMin <= x < 0, T2U(x) = x + 2^w0 <= x <= TMax, T2U(x) = x2.⽆符号数转换为有符号数(w位):0 <= x <= TMax, U2T(x) = xTMax < x <= UMax, U2T(x) = x - 2^w2.2.5 C语⾔中的有符号数和⽆符号数1.数字常量默认为有符号数,加上后缀u或U可创建⽆符号数常量2.类型转换的⽅式:(1)显式:强制类型转换(2)隐式:不同类型变量间赋值3.%d有符号⼗进制,%u⽆符号⼗进制,%o⼋进制,%x⼗六进制4.C语⾔对于同时包含有符号数和⽆符号数的表达式,会隐式地将有符号数转换为⾮负的⽆符号数 1/*2这是⼀个测试函数3注:TMin写成-2147483647-1⽽⾮-21474836484是因为limits.h中定义INT_MIN=-INT_MAX-1,以规避某些奇怪的现象5*/6 #include <cstdio>7using namespace std;89int main(){10 printf("-1 < 0u = %d\n", -1 < 0u);11 printf(" -1 = 0x%x \n", -1);12 printf(" 0u = 0x%x\n\n", 0u);1314 printf("2147483547 > (int)2147483648u = %d\n", 2147483547 > (int)2147483648u);15 printf(" 2147483547 = 0x%x \n", 2147483547);16 printf(" (int)2147483648u = 0x%x\n\n", (int)2147483648u);1718 printf("-2147483647-1u < 2147483647 = %d\n", -2147483647-1u < 2147483647);19 printf(" -2147483647-1u = 0x%x \n", -2147483647-1u);20 printf(" 2147483647 = 0x%x\n\n", 2147483647);2122 printf("-2147483647-1u < -2147483647 = %d\n", -2147483647-1u < -2147483647);23 printf(" -2147483647-1u = 0x%x \n", -2147483647-1u);24 printf(" -2147483647 = 0x%x\n\n", -2147483647);25return0;26 }运⾏结果如下-1 < 0u = 0-1 = 0xffffffff0u = 0x02147483547 > (int)2147483648u = 12147483547 = 0x7fffff9b(int)2147483648u = 0x80000000-2147483647-1u < 2147483647 = 0-2147483647-1u = 0x800000002147483647 = 0x7fffffff-2147483647-1u < -2147483647 = 1-2147483647-1u = 0x80000000-2147483647 = 0x800000012.4 浮点数2.4.1 ⼆进制⼩数2.4.2 IEEE浮点表⽰1.表⽰形式:(1)符号(sign)s: 表⽰+-(2)尾数(significand)M:⼆进制⼩数,取值范围为[1,2)或[0,1)(3)阶码(exponent)E:对浮点数加权,权重为2的E次幂2.编码:s编码符号sign s,exp编码阶码exponent E,frac编码尾数significand M3.三种情况(1)规格化的(noemalized): exp!=00...0 && exp!=11 (1)i. 阶码 E = exp - bias, bias = 2^(k-1)-1, k=exp的位数ii. 尾数 M = 1.xx...x = 1.frac的位(隐含的以1开头的表⽰)(2)⾮规格化的(denormalized): exp == 00 0i. 阶码 E = 1 - bias, bias = 2^(k-1)-1, k=exp的位数ii. 尾数 M = 0.xx...x = 0.frac的位iii.注意:0.0有两种表⽰⽅法+0.0和-0.0,符号位分别为0或1,其他位全部为0(3)特殊值: exp == 11 (1)i. ⽆穷:frac = 00...0, s=0或1表⽰+∞或-∞,能够表⽰溢出的运算结果,如x/0 ii. Nan(not a number): frac != 00...0, 表⽰⾮实数的运算结果,如根号-1,∞-∞4.三种情况的数字分布⾮规格化数字的阶码定义为E=1-bias可以补偿⾮规格化的尾数没有隐含的开头1,有助于数字表⽰的平滑转变;否则,在绝对值最⼤的⾮规格化数字(其⼆进制表⽰为0 00...0 11...1)和绝对值最⼩的规格化数字(其⼆进制表⽰为0 00...01 00...0)之间将存在跳跃2.4.3 数字⽰例1. 处理正浮点数时,若按照⽆符号整数解释他们的⼆进制表⽰,则可以发现它们的⼤⼩顺序不变;负浮点数只需要倒序。
第二章 计算机中信息的表示习题及答案

第二章一、选择题1.下列数中,最小的数是 A 。
8A.(101001)2B.(52) C.(2B)16D.452.下列数中,最大的数是 D 。
A.(101001)2B.(52)8C.(2B)16 D.453.计算机中表示地址时使用__ _D___A.原码B.补码C.反码D.无符号数4.字长16位,用定点补码小数表示时,一个字能表示的范围是__D___ 1-2-15A.-1~()B.0~(1-2-15)1-2-15C.-1~+1 D.-()~(1-2-15)5.若X补=10000000,则十进制真值为___ C___。
A、-0B、-127C、-128D、-16.定点整数16位,含1位符号位,原码表示,则最大正数为___C ___A、216B、215C、215-1D、216-17.当-1<x<0时,[x]原=___B___A.xB.1-xC.4+xD.(2-2n)-1*18.8位反码表示数的最小值为_______,最大值__ A___。
A.-127,+127B.-128,+128C.-256,+256D.-255,+2559.N+1位二进制正整数的取值范围是____D ___A.0~2n-1 B.1~2n-1C.0~2n+1-1 D.1-2n+1-110.浮点数的表示范围和精度取决于___ A____A.阶码的位数和尾数的位数B.阶码的位数和尾数采用的编码C.阶码采用的编码和尾数采用的编码D.阶码采用的编码和尾数的位数11.在浮点数编码表示中,___ C___在机器数中不出现,是隐含的。
A.尾数B.符号C.基数D.阶码12.移码和补码比较,只有____ C___不同,其他都相同。
A.正号 B.负号C.符号 D.标志13.一个24×24点阵的汉字,需要___ _B____字节的存储空间。
A.62 B.72C.64 D.3214.62个汉字的机内码需要 CA.62字节 B.32字节C.124字节 D.248字节15.ASCII码是对____ A____进行编码的一种方案A.字符、图形符号 B.汉字C.数字 D.声音16.D/A转换是___ C___A.把计算机输出的模拟量转化为数字量B.把模拟量转化为数字量,把数字量输入到计算机C.把数字量转化为模拟量,把转化结果输出计算机D.把计算机输出的模拟量转为数字量17.在大量数据传送中常用且有效的检验法是__ D___A.奇偶校验法 B.海明码校验C.判别校验 D.CRC校验二、填空题1.二进制中的基数为 2,十进制中的基数为 10 ,八进制中的基数为8 ,十六进制中的基数为 16 。
2第二章-计算机中数据信息表示法练习题答案

精品文档。
1欢迎下载 一、填空题1. 数的编码表示有 、 、 和 表示。
原码、反码、补码、移码2. 数的小数点表示有 、 表示。
定点、浮点3. 150.4D= B ,1001.01B= D 。
10010110. 0110011B 9.25D4. 7/16D= B ,19/64D = B 。
0.0111B 0.010011B5. [+0000000]原= ,[+0000000]原 。
(机器字长8位) 0,0000000 1,00000006. 设机器字长5位,十进制数7的原码= ,十进制数-7的原码= 。
7. 计算机系统是由 系统和 系统组成的;硬件系统由 和 组成。
硬件 软件 主机 外设8. 是指存储器中所有存储单元的总数目。
存储容量9. CPU 的工作节拍受主时钟控制,主时钟不断产生固定频率的时钟,主时钟的频率(f )叫CPU 的 。
度量单位是MHz 或 。
主频 GHz10. 指处理机运算器中一次能够完成二进制数运算的位数。
处理机字长二、判断题( √ )1. 零的原码表示不唯一。
( √ )2. 引入补码的目的是变减法为加法。
( √ )3. 正数:原码、反码、补码表示都相同( √ )4. 负数求补的规则:对原码,符号位保持不变,其余各位变反,末位加1。
( × )5. 负数求补的规则:对原码,符号位保持不变,其余各位变反。
( √ )6. 零的补码表示唯一。
( × )7. 零的补码表示不唯一。
( √ )8. 移码主要用来表示浮点数的阶码。
( √ )9. 移码与补码,仅符号位相反,其余各位相同。
( √ )10. 移码表示实际是把真值映射到了正数域,可按无符号数比较大小。
( × )11. 在数的移码表示中x>0,符号为0;x<0,符号为1。
三、简答题1. 写出机器字长8位,原码表示所对应的十进制整数和小数的表示范围。
整数范围:-127≤x ≤ +127或:-128 < x <+128小数范围: -(1-2-7 ) ≤ x ≤ 1 -2-7或: -1<x <+12. 规格化浮点补码加减运算的步骤是怎样的?3. 机器格式为×,×××;×.××××××,写出[X]原=±11/32的规格化浮点表示X= -11/32= -(23 +2+1)/25 =-(2-2+2-4 +2-5)= - 0.01011B = -0.1011× 2-1[X]原=1,001;1.1011004. 机器格式为定点:××××××××,写出X =+9/128和X =-9/128的定点表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)八进制数转换为二进制数
此为上述转换的逆过程。将每一位八进制数 码用三位二进制数码代替,即"一分为三"。 【例6】将(576.35)8转换成二进制数。
将八进制数的每位数码依次用三位二进制数 代替,即得:
(576.35)8=(101111110.011101)2
计算机应用基础
介绍数值型数据和 字符型数据的基本编 码技术,并简单介绍 数据压缩技术。
第2章 信息表示技术基础
2.1 数制及转换 2.2 数值型数据的表示及运算 2.3 字符编码技术 2.4 数据压缩
2015/12/9
《大学计算机基础》
3
2.1 数制及转换
常见进位计数制
2015/12/9
《大学计算机基础》
【例1】将83转换成二进制数,逐次除2取余:
2 | 83 2 | 41 2 | 20 2 | 10 2 | 5 2|2 2|1 0
1 1 0 0 1 0 1
低
高
得到的余数从先至后依次为: 1、1、0、0、1、0、1 可得到:(83)10=(1010011)2
2015/12/9 《大学计算机基础》 11
数的范围:
-127D~+127D
2015/12/9
(对于八位二进制)
25
《大学计算机基础》
(3)数的补码表示
正数的补码表示于其原码相同,即符号位用“ 0” 表示正数,数字位为数值本身;负数的补码是将 它的反码加1形成的。 例如:对于负数X = -105
[Y]原码= 1 1101001 [Y]反码= 1 0010110 [Y]补码= 1 0010111
2015/12/9
《大学计算机基础》
15
(1)二进制数转换成八进制数
因为23=8,所以三位二进制数位相当于一 个八进制数位,它们之间存在简单直接的 关系。
三位一并法:
从待转换的二进制数的小数点开始,分别 向左、右两个方向进行,将每三位合并为 一组,不足三位的以 0 补齐 ( 注意:整数部 分在前面补0,小数部分在末尾补0)。然后 每三位二进制数用相应的八进制码 (0 ~ 7) 表示,即完成二——八转换工作。
2015/12/9
《大学计算机基础》
7
为什么采用二进制?
1. 数字符号表示简单容易,只要选用双态元 件,如单向导电元件,磁性元件,发光元 件,就可以十分简单地表示出数位上的数 字0和1了;因此代价低廉\容易实现和使 用。 2. 运算规则简单,使计算机实现运算的逻辑 结构构造简单。
3. 有利于逻辑运算的实现,可以用1表示真值, 0表示假值,其运算是双值运算,与二进制 完全一致。
2015/12/9 《大学计算机基础》 29
【例9】[X]补码=01011001B,[X]补码 =11011001B,分别求其真值X。
(1)[X]补码代表的数是正数,其真值: X=+1011001B =+(1×26+1×24+1×23+1×20) =+(64+16+8+1) =+(89)D (2)[X]补码代表的数是负数,则真值: X=-([1011001]求反+1)B =-(0100110+1)B =-(0100111)B =-(1×25+1×22+1×21+1×20) =-(32+4+2+1) =-(39)D
零只有唯一表示: (+0)补码 = (-0)补码 = 0 0000000 数的范围:
-128D~+127D (对于八位二进制数)
26
3.计算机运算基础
[X]原码 =[ [X]反码]反码=[ [X]补码]补码
2015/12/9
《大学计算机基础》
27
【例】3位二进制补码表示的数值范围 XXX 值 -4 《=(00)反+1=11+1=1002=410 100 -3 《=(01)反+1=10+1=112=310 101 -2 《=(10)反+1=01+1=102=210 110 -1 111 ?《=(11)反+1=00+1=012=110 000 0 001 1 010 2 011 3
2015/12/9
《大学计算机基础》
19
(3)二进制数转换为十六进制数
因为24=16,因此四位二进制数与一位十 六进制数是完全对应的。 四位一并法:
从待转换的二进制数的小数点开始,分别 向左、右两个方向进行,将每四位合并为 一组,不足四位的以0补齐。然后每四位二 进制数用一个相应的十六进制码(0~F)表 示,即完成二——十六转换工作。
【例2】将0.8125转换为二进制小数,逐次乘2 取整:
0. 8125 × 2 1 . 625 × 2 1 . 25 × 2 0 .5 × 2 1 .0
高
低
可得:(0.8125)10=(0.1101)2
2015/12/9 《大学计算机基础》 12
值得注意的是:
并非每一个十进制小数都能转换为有限位的二进 制小数,此时可以采用0舍1入的方法进行处理(类 似于十进制中的四舍五入的方法)。 有些小数转换时为无限循环小数,不出现小数部 分为0。这时根据转换的精确度决定终止的位数。 如0.7转换时有: 0.7(10)=0.101100110011…(2) 它以0110循环。这时,若精确度取4位,则结果 为0.1011;若精确度取6位,则结果为0.101101, 第7位的1向高位进1,即0舍1入。
2015/12/9 《大学计算机基础》 16
【例4】将(101010001.001)2转换成八进制数。
首先以小数点为中心,分别向左右两个方向每三 位划分成一组(以逗号作为分界符):
101,010,001.001, 然后,每三位用一个相应八进制数码代替,即得: (101010001.001)2 = (521.1)8
4
2.1 数制及转换
常见进位制数的表示
进位制
规则 基数 数符 权 形式表示
二进制
逢二进一 r=2 0,1 2i B
八进制
逢八进一 r=8 0,1,2,…,7 8i O
十进制
逢十进一 r=10 0,1,…,9 10i D
十六进制
逢十六进一 r=16
0,1,…,9,A, B,C,D,E,F
16i H
2015/12/9
2015/12/9
《大学计算机基础》
6
1.二进制数 二进制
以2为基数,逢2进1,采用0、1两个符号。例如: bnbn-1 …2b1b0 = bn×2n+bn-1×2n-1+……+b1×21+b0×20 1234(10)= 10011010010(2) =1×210+0×29+0×28+1×27+1×26+0×25 +1×24+0×23+0×22+1×21+0×20
2015/12/9 13
《大学计算机基础》
二进制数转换为十进制数
将一个二进制数表示为以2为数基的方幂的多项 式,根据这个多项式采用十进制方式进行进算, 其结果即为该二进制数转换成十进制数的结果。
【例3】求(1001.101)2的十进制数值。
(1001.101)2 =1×23+0×22+0×21+1×20+1×2-1 +0×2-2+1×2-3 =8+1+0.5+0.125 =(9.625)10
24
《大学计算机基础》
(2)数的反码表示
正数的反码表示于其原码相同,即符号位用“ 0” 表示正数,数字位为数值本身;负数的反码是将 它的正数按位取反而形成的。 例如:对于负数X = -105
[X]原码 = 1 1101001 [X]反码 = 1 0010110
零有两种表示: 正零为0 0000000;负零为1 0000000。
《大学计算机基础》
5
2.1 数制及转换
1.二进制数
十进制
以10为基数,逢10进1,采用0~9个符号。例如: 1234 = 1×103+2×102+3×101+4×100
a进制
以a为基数,逢a进1,采用a个符号。例如: xnxn-1…x1x0 = xn×an+xn-1×an-1+……+x1×a1+x0×a0
2015/12/9 《大学计算机基础》 28
一、补码的运算
采用补码进行加减运算十分方便。通过对负 数的编码处理,允许符号位和数值一起参与 运算,可以把减法运算转化为加法运算。不 论求和、求差,也不论操作数为正、为负, 运算时一律只做加法,从而大大简化运算器 的设计。 例如,加0101和0010得0111;加0111和 1011结果是0010(0111+1011)=1 0010,舍 去最左边的1,结果为0010,长度保持4位)。
2015/12/9
《大学计算机基础》
20
【例7】将(10110001.0011)2转换成十六进制数。
首先以小数点为中心,分别向左右两个方向每四 位划分成一组(以逗号作为分界符):
1011,0001.0011, 然后,每四位用一个相应十六进制数码代替,即 得:
(10110001.0011)2 = (B1.3)16
2015/12/9
《大学计算机基础》
21
(4)十六进制数转换为二进制数
与八——二转换类似,采用"一分为四"的方法, 把每个十六进制数码用四位二进制数代替就完成 了十六——二转换工作。
【例8】将(576.35)16转换成二进制数。 将八进制数的每位数码依次用三位二进制数代替, 即得: 576.35)16=(010101110110.00110101)2