第2章数据的表示和运算习题
- 格式:docx
- 大小:280.33 KB
- 文档页数:4
计算机组成原理第⼆章数据的表⽰和运算第⼆章数据的表⽰和运算数制与编码进制转换使⽤⼆进制的原因⼆进制与⼋进制、⼗六进制的转换各种进制的书写⽅式⼗进制转换为任意进制整数部分⼗进制转换⼆进制如(75)10752=37……1 K372=18……1 K1182=9……0 K292=4……1 K342=2……0 K422=1……0 K512=0……1 K6K0K1K2K3K4K5K6=1101001⼩数部分⼗进制转换⼆进制如(75.3)10⼩数部分=0.30.3∗2=0.6=0+0.6 K−10.6∗2=1.2=1+0.2 K−20.2∗2=0.4=0+0.4 K−30.4∗2=0.8=0+0.8 K−40.8∗2=1.6=1+0.6 K−5……0.3D=0.01001……B⼩数⽆法准确表述⼗进制转换⼆进制(拼凑法)总结Processing math: 52%BCD码(Binary-Coded Decimal)修正数据(9+9)10(9)10→(1001)2(9+9)2=100110011001+1001−−−−1001010010超出了8421码中的1010−1111+(6)10⇔+(0110)2修正10010+0110−−−−11000相加结果在合法范围(1010~1111)内,不需要修正其他编码总结字符与字符串ASCII码可印刷字符:32~126其余为控制、通信字符⼤写字母:65(0100 0001)~ 90(0101 1010)⼩写字母:97(0110 0001)~ 122(0111 1010)汉字的表⽰和编码输⼊:输⼊编码输出:汉字字形码字符串⼤端模式&⼩端模式总结奇偶校验码校验原理当d=1时,⽆检错能⼒;当d=2时,有检错能⼒;当d≥3时,若设计合理,可能具有检错纠错能⼒(海明码)奇偶校验码例题奇校验:(1)1001101 (0)1010111偶校验:(0)1001101 (1)1010111只能发现数据代码中奇数位的出错情况,但不能纠错总结海明码简单思路求解步骤总结循环冗余校验码基本思想校验步骤(模⼆除)G(x)=x3+x2+1=1∗x3+1∗x2+0∗x1+1∗x0→1101110101−−−−−−−−−−−−−−−−−−−1101 |101001000110111101101−−−−−−−−−−−−−−−−−−−01110000−−−−−−−−−−−−−−−−−−−11101101−−−−−−−−−−−−−−−−−−−01100000−−−−−−−−−−−−−−−−−−−11001101−−−−−−−−−−−−−−−−−−−001→校验位对应的CRC码为101001 001s余数为001、010时并不能确定是哪⼀位出错了此时是信息位过多,降低信息位就可以解决问题K个信息位,R个校验位,若⽣成多项式选择得当,且2R≥K+R+1,则CRC码可纠正1位错总结定点数的表⽰⽆符号数通常只有⽆符号整数,⽽没有⽆符号⼩数1001100B=1∗27+1∗26+0∗25+0∗24+1∗23+1∗22+0∗21+0∗20=156D有符号数的定点表⽰原码⽤尾数表⽰真值部分的绝对值,符号位“0/1”对应“正/负”若机器字长为n+1位,则尾数占n位反码若符号位为0,则反码与原码相同若符号位为1,则数值位全部取反反码是原码转变为补码的⼀个中间状态补码正数的补码=原码负数的补码=反码末位+1(要考虑进位)设机器字长为8位[+0]原=0000 0000[+0]反=0000 0000[+0]补=0000 0000[−0]原=1000 0000[−0]反=1111 1111[−0]补=1 0000 0000由于机器字长为8位,进位丢弃[−0]补=0000 0000逆向将负数补码转回原码的⽅法相同:尾数取反,末尾+1[−19]原=1001 0011[−19]反=1110 1100[−19]补=1110 1101[−19]原=1001 0010+0000 0001=1001 0011移码补码的基础上将符号位取反移码只能⽤于表⽰整数⼏种码表⽰定点整数练习假设机器字长为8位定点整数x=50[+50]原=0011 0010[+50]反=0011 0010[+50]补=0011 0010[+50]移=1011 0010定点整数x=−100[−100]原=1110 0100[−100]反=1001 1011[−100]补=1001 1100[−100]移=0001 1110知识回顾各种码的作⽤⽤加法代替减法表盘为例10+9=1919%12=7相当于求余数模运算的性质可以说在模12的情况下上述数字等价其中-3和9互为补数,⼆者绝对值之和等于模\begin{align} 有符号数&~~~~~~~~~~~~~~~~~~~⽆符号数\\ 14~~~~~~&0000~1110~~~~~~~~14\\ -14~~~+&1000~1110~~~~~~142\\ -----&-----------\\0~~~~~~&1001~1100~~~~~~156\\ &模-a的绝对值=a的补数\\ &0000~1110\\ -&0000~1110\\ -----&-----------\\ &0000~0000\\ &\\ &模2^8-0000~1110\\ &1~0000~0000\\ -&~~~0000~1110\\ -----&-----------\\ &~~~1111~0010\\ -----&-----------\\ &~~~0000~1110\\ +&~~~1111~0010\\ -----&-----------\\ &~1~0000~0000\\ \end{align}\begin{align} &求-66的补码\\ &[-66]_{原}=1100~0010\\ &[-66]_{反}=1011~1101\\ &[-66]_{补}=1011~1110\\ &[+88]_{原}=0101~1000\\ &1101~1000\\ +&0011~1110\\ --&-----------------\\ 1~&0001~0110~~~~~~22D\\ \end{align}移位运算算术移位原码的算术移位\begin{align} &[+20]_{原}=0001~0100\\ &{左移⼀位}=0010~1000=+40D\\ \end{align}反码的算数移位补码的算数移位\begin{align} &[-20]_{原}=1001~0100\\ &[-20]_{反}=1110~1011\\ &[-20]_{补}=1110~1100\\ &左移⼀位=1010~1000\\ &[-20]_{原}=1001~0100\\ &[-20]_{反}=1110~1011\\ &[-20]_{补}=1110~1100\\ &右移⼀位=1111~0110\\ \end{align}逻辑移位(针对⽆符号数)应⽤举例循环移位总结加减运算原码的加减运算补码的加减运算\begin{align} &A=15,B=-24,C=124,求[A+C]_{补}[B-C]_{补}\\ &[A]_{原}=0000~1111\\ &[A]_{反}=0000~1111\\ &[A]_{补}=0000~1111\\ &[B]_{原}=1001~1000\\ &[B]_{反}=1110~0111\\ & [B]_{补}=1110~1000\\ &[C]_{原}=0111~1100\\ &[C]_{反}=0111~1100\\ &[C]_{补}=0111~1100\\ &[A+C]_{补}\\ &0000~1111\\ +&0111~1100\\ ----&------------\\ &1000~1011\\&1111~0100\\ &1111~0101~~~~~~-117D\\ &[B-C]_{补}\\ 1&~0000~0000\\ -&~0111~1100\\ ----&-------------\\ &~1000~0100\\ +&~1110~1000\\ ----&-------------\\ &~0110~1100\\&~0110~1100\\ &~0110~1100~~~~~~+108D\\ \end{align}出现了溢出溢出判断⼀位符号逻辑表达式进位判断双符号位符号扩展整数⼩数总结乘法运算⼿算乘法(⼗进制)⼿算乘法(⼆进制)原码⼀位乘法实现⽅法:先加法再移位,重复n次(0)乘法进⾏前ACC置0(1)第⼀步加法加法移位(2)第⼆步加法加法移位(3)第三步加法加法移位(4)第四步加法加法移位乘法结果修正符号位原码⼀位乘法(⼿算模拟)\begin{align} &⾼位部分积~~~~ ~~~~低位部分积~~~~ ~~~~ ~~~~说明\\ &~~00.0000~~~~ ~~~~ ~~~~ ~~~~ 101\underline{1}|~~~~ ~~~~ 低位=1~~~~ +|x|\\ +|x|&~~00.1101~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~|\\ ----&---------------------\\ &~~00.1101\\ 右移&~~00.0110~~~~ ~~~~ ~~~~ ~~~~ 110\underline{1}|1~~~~ ~~~ 低位=1~~~~ +|x|\\ +|x|&~~00.1101~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~|\\ ----&---------------------\\ &~~01.0011\\ 右移&~~00.1001~~~~ ~~~~ ~~~~ ~~~~ 111\underline{0}|11~~ ~~~低位=0~~~~ +0 \\ +&~~00.0000\\ ----&---------------------\\&~~00.1001\\ 右移&~~00.0100~~~~ ~~~~ ~~~~ ~~~~ 111\underline{1}|011 ~~~低位=1~~~~ +|x| \\ +|x|&~~00.1101\\ ----&---------------------\\ &~~01.0001\\ 右移&~~00.1000~~~~ ~~~~ ~~~~ ~~~~ 111\underline{1}|1011 ~右移部分积和乘数全部移出 \\ &|x|=00.10001111\\ &x*y=-0.10001111\\ \end{align}补码的⼀位乘法辅助位⼿算模拟\begin{align} &⾼位部分积~~~~ ~~~~低位部分积~~~~ ~~~~ ~~~~说明\\ &~~00.0000~~~~ ~~~~ ~~~~ 0.101\underline{1}|0~~~~ ~~~~ ~~~~起始情况\\ +[-x]_补&~~00.1101~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ Y_4Y_5=10,Y_5-Y_4=-1,+[-x]_{补}\\ ----&-----------------------------\\ &~~00.1101\\ 右移&~~00.0110~~~~ ~~~~ ~~~~10.10\underline{1}|10~~~~ ~~~~ ~~~~右移部分积和乘数\\ +0&~~00.0000~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ Y_4Y_5=10,Y_5-Y_4=0,+0\\ ----&-----------------------------\\ &~~00.0110\\ 右移&~~00.0011~~~~ ~~~~ ~~~~ 010.1\underline{0}|110~~~~ ~~~~ ~~~~右移部分积和乘数\\ +[x]_补&~~11.0011~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~~~~~ ~~~~ Y_4Y_5=01,Y_5-Y_4=1,+[x]_补\\ ----&-----------------------------\\ &~~11.0110\\ 右移&~~11.1011~~~~ ~~~~ ~~~~ 0010.\underline{1}|0110~~~~ ~~~~ ~~~~右移部分积和乘数\\ +[-x]_补&~~00.1101~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ Y_4Y_5=10,Y_5-Y_4=-1,+[-x]_补\\ ----&-----------------------------\\ &~~00.1000\\ 右移&~~00.0100~~~~~~~~ ~~~~ \underline{\underline{0001}}\underline{0}.|10110~~~~ ~~~~ ~~~~右移部分积和乘数\\ +[x]_补&~~11.0011~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~Y_4Y_5=01,Y_5-Y_4=1,+[x]_补\\ ----&-----------------------------\\ &~~11.0111\\ &[x*y]_补=11.0111~0001\\ &x*y=-0.1000~1111\\ \end{align}除法运算⼿算除法(⼗进制)⼿算除法(⼆进制)恢复余数法原码除法:恢复余数法(0)初始(1)第⼀步上商求余数判断上商是否正确01011上商后得11110,相减结果为负,应上商0修正逻辑左移(2)第⼆步上商求余数判断上商是否正确相减结果为正数,上商正确逻辑左移(3)第三步上商求余数判断上商是否正确上商⽆误逻辑左移(4)第四步上商求余数判断上商是否正确相减结果⼩于0,上商有误修正逻辑左移(5)第五步:最后⼀步除法上商&求余数判断上商是否正确最后⼀步除法,如果上商求余数结果⼩于0.还需要继续恢复余数(6)最后⼀步\begin{align} &余数=ACC*2^{-n}\\ \end{align}原码除法(⼿算)加减交替法默认规定被除数要⼩于除数,否则硬件电路⽆法运⾏,如果被除数⼤于除数,商的结果为⼤于1的数将⽆法表⽰通过第⼀步的商来判断被除数与除数的⼤⼩关系第⼀步商的结果⼀定为负值,如果为正值说明被除数⽐除数⼤,硬件电路会⽴即停⽌运算补码除法加减交替法总结C语⾔中的强制类型转换数据的存储和排列⼤⼩端模式边界对齐浮点数的表⽰浮点数尾数的规格化左规&右规规格化浮点数的特点总结IEEE754 浮点数标准\begin{align} &IEEE754规定偏置值=2^{n-1}\\ \end{align}IEEE 754 标准\begin{align} &(-0.75)_{10}=(-0.11)_2=(-1.1)*2^{-1}\\ &数符=1\\ &尾数部分=.1000~0000……(隐含最⾼位1)\\ &阶码真值=-1\\ &单精度浮点型偏移量=127D\\ &移码=阶码真值+偏移量=-1+111~1111=0111~1110(凑⾜8位)\\ \end{align}总结浮点数的运算浮点数的加减运算\begin{align} &(0)转换格式\\ &5D=101B,\frac{1}{256}=2^{-8},X=-101*2^-8=-0.101*2^{-5}=-0.101*2^{-101}\\ &59D=111011,\frac{1}{1024}=2^{-10},Y=111011*2^{-10}=0.111011*2^{-4}=0.111011*2^{-100}\\ &X: &[阶码]_{原}=-101\\ &[阶码]_{补}=1011\\ &阶码双符号位补码:11011\\ &[尾数]_{原}=-0.101\\ &[尾数]_{补}=1.011\\ &尾数双符号位补码:11.011\\&X=11011,11.011000000\\ &Y: &[阶码]_{原}=-100\\ &[阶码]_{补}=1100\\ &阶码双符号位补码:11100\\ &[尾数]_{原}=0.111011\\ &[尾数]_{补}=0.111011\\ &尾数双符号位补码:00.111011\\ &X=11100,00.111011000\\ &浮点数加减法运算步骤\\ &(1)对阶\\ &⼩阶向⼤阶看齐,尾数每右移⼀位,阶码+1\\ &[1]求阶差:[\Delta E]_补=||E_X|_原+|E_Y|_补|=11011+00100=11111\\ &\Delta=-1\\ &[2]对阶:X:11011,11.011000000\rightarrow 111011,11.1011000000\\ &X=-0.0101*2^{-100}\\ &(2)尾数减法\\ &-Y=11100,11.000101000\\ &11011,11.011000000\\ +&11100,11.000101000\\ ---&----------------------------\\ &10.110001000\\ &X_Y=11100,10.110001000\\ &(3)规格化\\&X_Y=11100,10.110001000\rightarrow11101,011000100\\ &(4)舍⼊ \\ &⽆需舍⼊\\ &(5)判断溢出\\ &常阶码,⽆溢出,结果真值为2^{-3}*(-0.1001111)_2 \end{align}舍⼊强制类型转换总结加法器设计算术逻辑单元ALU机器字长=ALU⼀次可以处理的数据长度基本逻辑运算⽤门电路求偶校验位⼀位全加器串⾏加法器并⾏加法器总结加法器、ALU的改进并⾏加法器的优化组内并⾏&串⾏ALU芯⽚优化。
第二章运算方法和运算器练习一、填空题1. 补码加减法中,(符号位)作为数的一部分参加运算,(符号位产生的进位)要丢掉。
2. 为判断溢出,可采用双符号位补码,此时正数的符号用(00)表示,负数的符号用(11)表示。
3. 采用双符号位的方法进行溢出检测时,若运算结果中两个符号位(不相同),则表明发生了溢出。
若结果的符号位为(01),表示发生正溢出;若为(10),表示发生负溢出。
4. 采用单符号位进行溢出检测时,若加数与被加数符号相同,而运算结果的符号与操作数的符号(不一致),则表示溢出;当加数与被加数符号不同时,相加运算的结果(不会产生溢出)。
5. 利用数据的数值位最高位进位C和符号位进位Cf的状况来判断溢出,则其表达式为over=(C⊕Cf)。
6. 在减法运算中,正数减(负数)可能产生溢出,此时的溢出为(正)溢出;负数减(正数)可能产生溢出,此时的溢出为(负)溢出。
7. 补码一位乘法运算法则通过判断乘数最末位Yi和Yi-1的值决定下步操作,当YiYi-1=(10)时,执行部分积加【-x】补,再右移一位;当YiYi-1=(01)时,执行部分积加【x】补,再右移一位。
8. 浮点加减运算在(阶码运算溢出)情况下会发生溢出。
9. 原码一位乘法中,符号位与数值位(分开运算),运算结果的符号位等于(两操作数符号的异或值)。
10. 一个浮点数,当其补码尾数右移一位时,为使其值不变,阶码应该(加1)。
11. 左规的规则为:尾数(左移一位),阶码(减1)。
12. 右规的规则是:尾数(右移一位),阶码(加1)。
13. 影响进位加法器速度的关键因素是(进位信号的传递问题)。
14. 当运算结果的补码尾数部分不是(11.0×××××或00.1×××××)的形式时,则应进行规格化处理。
当尾数符号位为(01)或(10)时,需要右规。
C语⾔练习题—基本数据类型和运算第2章基本数据类型和运算练习题⼀、单项选择题1.下列数据中属于“字符串常量”的是()。
A.”a” B. {ABC} C. ’abc\0’ D. ’a’2.下列数据中属于“字符串常量”的是()。
A.ABC B. “ABC” C. ’abc’ D. ’a’3. 在PC机中,’\n’在内存占⽤的字节数是()。
A. 1B. 2C. 3D. 44. 在PC机中,”a\xff”在内存占⽤的字节数是()。
A. 5B. 6C. 3D. 45.字符串”ABC”在内存占⽤的字节数是()。
A. 3B. 4C. 6D. 86.字符串”\”ABCD\””在内存占⽤的字节数是()。
A. 4B. 6C. 7D. 87. 在C语⾔中,合法的长整型常数是()。
A. 0LB.C. 0.D. 2.1869e108.在C语⾔中,合法的短整型常数是()。
D. 0x2a9.下列数据中不属于“字符常量”的是()。
A. ‘\a’B. ‘\160’C. ‘070’D. 07010.char型常量在内存中存放的是()。
A. ASCII代码值B. BCD代码值C. 内码值D. ⼗进制代码值11.设整型变量m,n,a,b,c,d均为0,执⾏(m=a==b)||(n=c==d)后,m,n的值是()。
A. 0,0B. 0,1C. 1,0D. 1,112.设整型变量m,n,a,b,c,d均为1,执⾏“(m=a>b)&&(n=a>b)”后,m,n的值是()。
A. 0,0B. 0,1C. 1,0D. 1,113.设a为2,执⾏下列语句后,b的值不为0.5的是()。
A. b=1.0/aB. b=(float)(1/a)C. b=1/(float)aD. b=1/(a*1.0)14.设a为5,执⾏下列语句后,b的值不为2的是()。
A. b=a/2B. b=6-(--a)C. b=a%2D. b=a>3?2:215. 执⾏语句“x=(a=3,b=a--)”后,x,a,b的值依次为()。
C语⾔程序设计第2章数据类型与运算练习题及解答第2章数据类型和运算符习题及解答⼀.选择题。
1.下列是⽤户⾃定义标识符的是A)_w1 B)3_xy C)int D)LINE-3答案:A解析: C语⾔规定⽤户标识符由英⽂字母、数字和下划线组成,且第⼀个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语⾔不允许⽤户将关键字作为标识符,⽽选项C)选项项中的int 是C语⾔的关键字。
语⾔中最简单的数据类型包括A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)字符型、实型、逻辑型答案:B解析:本题考查C语⾔的数据类型。
在C语⾔中,没有专门的逻辑型数据类型,可以⽤0和1来表⽰逻辑值。
所以,在本题的选择答案中,不应该包括逻辑型。
3.假定int类型变量占⽤两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A)3 B)6 C)10 D)20答案:D解析: x数组共有10个元素,在花括弧内只提供3个初值,这表⽰只给前⾯的3个成员赋值,后7个元素的值为0,所以,⼀共有20个字节。
4.以下选项中不正确的实型常量是A) B) C) D)234e-2答案:B解析:实型常量表⽰时字母E或e前必须有数字,其后数字必需为整数,故B错。
5.若变量已正确定义并赋值,以下符合C语⾔语法的表达式是A)a:=b+1 B)a=b=c+2 C)int %3 D)a=a+7=c+b答案:B解析:选项A)中包含⼀个不合法的运算符“:=”;选项C)应改为(int)%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第⼀个是错的,因为C语⾔规定赋值号的左边只能是单个变量,不能是表达式或常量等。
因此,正确答案是选项B),它实际上相当于a=(b=c+2),进⽽可分解为两个表达式:b=c+2和a=b。
6.下列可⽤于C语⾔⽤户标识符的⼀组是A)void, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof答案:B解析: C语⾔规定标识符只能由字母、数字和下划线三种字符组成,且第⼀个字符必须为字母或下划线,排除选项C)和D)。
第二章数据在计算机中的表示综合练习题参考答案一、1 、计算机中的数有定点表示法和浮点表示法两种表示方法。
2 、原码的编码规则是:最高位代表符号,其余各位是该数的尾数本身。
3 、补码的编码规则是:正数的补码与其原码相同,负数的补码是将二进制位按位取反后在最低位加 1 。
4 、反码的编码规则是:正数的反码与其原码相同,负数的反码是将二进制位按位取反。
5 、一种记数制允许选用基本数字符号的个数称为基数。
6 、整数部分个位位置的序是 0 。
7 、通常把表示信息的数字符号称为数码。
8 、八进制数的基数是 8 。
9 、 7402.45Q 的十六进制数是 F02.94H 。
10 、数在计算机中的二进制表示形式称为二进制数。
11 、在小型或微型计算机中,最普遍采用的字母与字符编码是 ASCII 码。
12 、计算机一般都采用二进制数进行运算、存储和传送,其理由是运算规则简单,可以节省设备。
13 、十进制整数转换成二进制的方法是除 2 取余法,小数转换成二进制的方法是乘 2 取整法。
14 、二进制的运算规则有加法规则、减法规则、乘法规则和除法规则。
15 、目前常见的机器编码有原码、反码和补码。
16 、对 -0 和 +0 有不同表示方法的机器码是原码和码。
17 、 8 位寄存器中存放二进制整数,内容全为 1 ,当它为原码、补码和反码时所对应的十进制真值分别是 -127 、 -1 、 -0 。
18 、在二进制浮点数表示方法中,阶码的位数越多则数的表示范围越大,尾数的位数越多则数的精度越高。
19 、对于定点整数, 8 位原码(含 1 位符号位)可表示的最小整数为 -127 ,最大整数为 127 。
20 、采用 BCD 码, 1 位十进制数要用 4 位二进制数表示, 1 个字节可存放 2 个 BCD 码。
21 、对于定点小数, 8 位补码可表示的最小的数为 -1 ,最大的数为 1-27 。
22 、在原码、补码、反码中,补码的表示范围最大。
★1.确定哪些数据类型用数据表示来实现,下面几项中不重要的是:A.能够缩短程序运行的时间B.数据表示能够有良好的通用性和利用率C.最可能多的用硬件实现,提高性能D.减少CPU和主存储器之间的通讯量【答案】C★2.早期的计算机系统只有定点数据表示,因此硬件结构可以很简单。
但是这样的系统有明显的缺点,下面哪一个不是它的缺点:A.数据表示范围小B.单个需要的计算时钟周期多C.编程困难D.存储单元的利用率很低【答案】B★3. 简述采用标志符数据表示方法的主要优缺点。
【答案】优点有:(1)简化了指令系统(2)由硬件自动实现一致性检查和数据类型的转换。
(3)简化程序设计(4)简化编译器(5)方便软件调试(6)支持数据库系统缺点有:(1)数据和指令的长度不能一致(2)指令的执行速度降低(3)硬件的复杂性增加★4.有效的缩短地址码的长度,主要采用的有哪些方法?【答案】(1)用间址寻址方式缩短地址码长度(2)用变址寻址方式缩短地址码长度(3)用寄存器间接寻址方式缩短地址码长度是最有效的方法★5.随着计算机技术的不断发展和对指令系统的合理性的研究,精简的指令系统(RISC)出现并且逐步取代CISC的重要位置。
下面所述不是CISC的主要缺点的是:A.20%与80%规律B.VLSI技术的不断发展引起的一系列问题C. 软硬件功能分配的问题D. 由于指令众多带来的编码困难【答案】D★★★6. 某台计算机只有Load/Store 指令能对存储器进行读/写操作,其它指令只对寄存器进行操作。
根据程序跟踪实验结果,已知每种指令所占的比例及CPI 数如下: 指令类型 指令所占比例 CPI 算逻指令 43% 1 Load 指令 21% 2 Store 指令 12% 2 转移指令 24% 2(1)求上述情况下的平均CPI 。
(2)假设程序由M 条指令组成。
算逻运算中25%的指令的两个操作数中的一个已在寄存器中,另一个必须在算逻指令执行前用Load 指令从存储器取到寄存器。
第二章数据表示与指令系统历年真题精选1. 计算机中优先使用的操作码编码方法是( C )。
A. BCD码B. ASCII码C. 扩展操作码D. 哈夫曼编码=16,除尾符之外的尾数机器位数为8位时,可表示的规格化最大尾2.浮点数尾数基值rm数值为( D )。
A. 1/2B. 15/16C. 1/256D. 255/2563. 自定义数据表示包括(标志符)数据表示和(数据描述符)两类。
4. 引入数据表示的两条基本原则是:一看系统的效率是否有提高;二看数据表示的(通用)性和(利用)率是否高。
5. 简述设计RISC的一般原则。
6. 简述程序的动态再定位的思想。
7. 浮点数表示,阶码用二进制表示,除阶符之外的阶码位数p=3,尾数基值用十进制表示,除尾符外的尾数二进制位数m=8,计算非负阶、规格化、正尾数时,(1)可表示的最小尾数值;(2)可表示的最大值;(3)可表示的尾数个数。
8. (1)要将浮点数尾数下溢处理成K—1位结果,则ROM表的单元数和字长各是多少并简述ROM表各单元所填的内容与其地址之间的规则。
(2)若3位数,其最低位为下溢处理前的附加位,现将其下溢处理成2位结果,设计使下溢处理平均误差接近于零的ROM表,以表明地址单元与其内容的关系。
同步强化练习一.单项选择题。
1. 程序员编写程序时使用的地址是( D )。
A.主存地址 B.有效地址 C.辅存实地址 D.逻辑地址2. 在尾数下溢处理方法中,平均误差最大的是( B )。
A.舍入法 B.截断法 C.恒置“1”法 D.ROM查表法3. 数据表示指的是( C )。
A .应用中要用到的数据元素之间的结构关系B .软件要处理的信息单元之间的结构关系C .机器硬件能识别和引用的数据类型D .高级语言中的数据类型说明语句4. 标志符数据表示中的标志建立由( A )。
A .编译程序完成B .操作系统完成C .高级语言编程时完成D .汇编语言编程时完成5. 堆栈型机器比通用型机器优越的是( C )。
V i s u a l F o x P r o数据运算练习题及答案(总11页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第二章Visual FoxPro数据运算一、选择题1、依次执行Visual FoxPro=″ABC″和ABC= Visual FoxPro命令后,再执行Visual FoxPro+ABC命令的结果是。
A)ABCABCB)Visual FoxProABCC)FoxPro VisualFoxPro D)ABC Visual FoxPro2、(2001-9-20)-(2001-9-10)+4^2的结果是。
A)26 B)6C)18 D) -23、下列不能作为VFP中变量名。
A)ABCDEFG B)P000000 C)89TWDDFFD)xyz4、下列不能作为VFP的表达式。
A)赋值表达式B)日期表达式C)算术表达式D)关系表达式5、表达式2*3^2+2*8/4+3^2的值为。
A)64 B)31C)49 D)226、函数INT的值是。
A) B) C)-3 D)37、函数VAL(″16Year″)的值是。
A) B) C)D)168、函数INT(RAND( )*10 )是在范围内的整数。
A)(0,1) B)(1,10) C)(0,10) D)(1,9)9、如果x是一个正实数,对x的第3位小数四舍五入的表达式为。
A)*INT(x+ B)*INT(100*(x+)C)*INT(100*(x+) D)*INT(x+10、数字式子sin250写成VFP表达式是。
A)SIN25 B)SIN(25) C)SIN(250) D)SIN(25*PI()/180)11、“x是小于100的非负数”用VFP表达式表示是。
A)0≤x<100 B)0<=x<100 C)0<=X andx<100 D)0=x OR x<10012、下列符号中是VFP中的合法变量名。
习题二数据类型及其运算1.已定义c为字符型变量,则下列语句中正确的是______。
A、c='97'B、c="97";C、c=97;D、c="a";解析:本题的考查点是字符型变量。
C语言中,字符型数据和整型数据之间可以通用。
一个字符数据既可以以字符形式输出,也可以以整数形式输出。
所以把整型数据赋给字符型变量,直接用c=97即可,所以选项C正确。
2.以下选项中可作为C语言合法整数的是______。
A、10110BB、0386C、0XffaD、x2a2解析:本题的考查点是C语言中的整型常数。
整型常数可以用十进制、八进制或十六进制表示,并分为有符号数、无符号数和长整数。
由此可知选项A错;选项B,用0386表示八进制错误,因为八进制数为0-7八个数字,含有8是不对的;选项D,数字前加“0x”表示十六进制数,所以D也不对。
故本题答案为C。
3. 以下选项中不能作为合法常量的是______。
A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e0解析:本题考查的是常量表示法。
本题选项中的几个常量都属于指数形式的实型常量。
此种类型的常量要求字母e(或E)之前必需有数字,且e后面的指数必须为整数,所以本题中选项B非法。
故本题答案为B。
4.与十进制数200等值的十六进制数为______。
A、A8B、A4C、C8D、C4解析:本题考查的是进制之间的转换。
用十--十六进制转换法,除16,由下而上取余法。
故本题答案为C。
5. 若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是______。
A、sqrt(abs(n^x+e^x))B、sqrt(fabs(pow(n,x)+pow(x,e)))C、sqrt(fabs(pow(n,x)+exp(x)))D、sqrt(fabs(pow(x,n)+exp(x)))解析:本题考查的是基本函数应用。
1. 填空题⑴在C语言中,用“\”开头的字符序列称为转义字符。
转义字符“\n”的功能是____换行____;转义字符“\r”的功能是___ 回车_______。
⑵运算符“%”两侧运算对象的数据类型必须都是____整型_______;运算符“++”和“--”运算对象的数据类型必须是______变量______。
⑶表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为___整型_________。
⑷表达式(3+10)/2的值为_______6___________。
⑸设x=2.5,a=7,y=4.7,则算术表达式x+a%3*(int)(x+y)%2/4的值是2.5 。
2. 选择题⑴下列4组选项中,均不是C语言关键字的选项是_____A__。
A. define IF typeB. getc char printfC. include case scanfD. while go pow⑵下列4组选项中,均是合法转义字符的选项是___A____。
A. ‘\”’‘\\’‘\n’B. ‘\’‘\017’‘\”’C. ‘\018’‘\f’‘xab’D. ‘\\0’‘\101’‘xlf’⑶已知字母‘b’的ASCII码值为98,如ch为字符型变量,则表达式ch=‘b’+‘5’-‘2’的值为___A____。
A. eB. dC. 102D. 100⑷以下表达式值为3的是____B___。
A. 16-13%10B. 2+3/2C. 14/3-2D. (2+6)/(12-9)⑸以下叙述不正确的是____D___。
A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,MAX和max是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值⑹以下非法的赋值语句是 CA. n=(i=2,++i);B. j++; C). ++(i+1); D. x=j>0;⑺以下选项中合法的实型常数是 CA. 5E2.0B. E-3C. .2E0D. 1.3E⑻设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是 DA. 6.500000B. 6C. 5.500000D. 6.000000⑼与数学式子3*x n/(2x-1) 对应的C语言表达式是CA. 3*x^n(2*x-1)B. 3*x**n(2*x-1)C. 3*pow(x,n)*(1/(2*x-1))D. 3*pow(n,x)/(2*x-1)⑽已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&&y+z/2的值是 DA. 6B. 0C. 2D. 1⑾若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为 BA. 1.4B. 1C. 2.0D. 2⑿若变量a是int类型,并执行了语句:a='A'+1.6;,则正确的叙述是 DA. a的值是字符CB. a的值是浮点型C. 不允许字符型和浮点型相加D. a的值是字符'A'的ASCII值加上1。
第二章习题一、填空题:1.一个定点数由A.______和B.______两部分组成,根据小数点位置不同,定点数有C.______和D.______两种表示方法。
2.数的真值变成机器码可采用A. ______表示法,B. ______表示法,C.______表示法,移码表示法。
3.若[ x1 ]补 = 11001100, [x2 ]原 = 1.0110 ,则数x1和x2的十进制数真值分别是A.______和B.______。
4.移码表示法主要用于表示浮点数的A.______码,以利于比较两个B.______数的大小和进行C.______操作。
5.按IEEE754标准,一个浮点数由A.___, 阶码E, 尾数M三个域组成。
其中阶码E 的值等于指数的B.___, 加上一个固定C.___。
6.若浮点数格式中阶码的基数已定,且尾数采用规格化表示法,则浮点数的表示范围取决于A. 的位数,而精度取决于B. 的位数。
二、选择题:1.(2000)10化成十六进制数是______。
A.(7CD)16 B.(7D0)16 C.(7E0)16 D.(7FO)162.在小型或微型计算机里,普遍采用的字符编码是______。
A. BCD码B. 16进制C. 格雷码D. ASCⅡ码3.下列有关运算器的描述中,______是正确的。
A.只做算术运算,不做逻辑运算B. 只做加法C.能暂时存放运算结果D. 既做算术运算,又做逻辑运算4.某机字长32位。
其中1位符号位,31位表示尾数。
若用定点整数表示,则最大正整数为______。
A. +(231-1)B. +(230-1)C. +(231+1)D. +(230+1)5.至今为止,计算机中的所有信息仍以二进制方式表示的理由是______。
A.节约元件 B. 运算速度快 C. 物理器件性能决定 D. 信息处理方便6.某机字长32位,其中1位符号位,31位表示尾数。
若用定点整数表示,则最小负整数为______。
数据表示和运算练习题一、选择题:1.下列数中最小的数是______。
A.(1010011.10101)2 B.(123.55)8C.(53.B0)16 D.(83.75)102.某数在计算机中用8421BCD码表示为0011 1001 1000,其真值为______。
A.398 B.398H C.1630Q D.1110011000B3.ASCII码是对(1)_进行编码的一种方案,它是(2)_的缩写。
(1)A.字符 B.汉字 C.图形符号 D.声音(2)A.余3码 B.十进制数的二进制编码C.格雷码 D.美国标准信息交换代码4.一个1G的硬盘,最多可存放______个ASCII字符。
A. 220B.224 C. 210 D. 2305.存储32个汉字的机内码需要______。
A.16字节 B.32字节 C.64字节 D.128字节6.机器数10000001B,它所代表的数______。
A.一定是-1 B.一定是-127C.一定是-126 D. 以上3个数都有可能7. 假定一个十进制数为-66,按补码形式存放在一个8位寄存器中,该寄存器的内容用十六进制表示为______。
A.C2H B.BEH C.BDH D.42H8.如果X是负数,由[X]补求[X]原是将______。
A.符号位变反,其他各位不变 B.所有位求反,末位加1C.除符号位外,其他位求反后末位加1D.除符号位外,其他位求反9.下列数中,最大的是______。
A.[X]补=1001101 B.[X]原=1001101C.[X]反=1001101 D.[X]移=100110110. 计算机内的溢出是指其运算的结果______。
A.为无穷大B.超出了计算机内存单元所能存储的数值范围C.超出了该指令所指定的结果单元所能存储的数值范围11.计算机中表示地址时使用______。
A.无符号数 B.原码 C.反码 D.补码12. 计算机系统中采用补码运算的目的是为了______。
一、选择题
1.下列各种数制的数中,最小的数是( B )。
A. (1O1OO1)B
B. (1OlOOl)BCD
C.(52)0
D.(233)H
A为29H,B为29D.C写成二进制为101010,即2AH,显然最小的为29D。
2.两个数7E5H和4D3H相加,得( C )。
A.BD8H
B.CD8H
C.CB8H
D. CC8H
在十六进制数的加减法中,逢十六进一,故而7E5 H+4D3 H=CB8 H。
3.一个16位无符号二进制数的表示范围是( B )。
A. 05536
B. 0~66535
C. -3276832767
D.-32768~32768
一个16位无符号二进制数的表示范围是0.-- 216_1。
4.下列校验码中,奇校验正确的有( C )。
A. 110100111
B. 001000111
C. 010110011
D. 110100111
选项A、B、D中“l”的个数为偶数,仅有选项C中“1”的个数为奇数。
5.能发现两位错误井能纠正I位错的编码是( B )。
A.CRC码
B.海明码
C. 偶校验码
D.奇校验码
偶校验码与奇校验码都不能纠错;CRC码可以发现并纠正信息串行读/写、存储或传送中出现的l位或多位错(与多项式的选取有关):海明码能发现两位错误并纠正l位错。
6.设待校验的数据为D8~DI=10101011,若采用海明校验,其海明码为( A )(设海明码具有一位纠错能力,P13采用全校验);若采用CRC.且生成多项式为10011,则:CRC码为( C )。
A. 0101001011111
B. 0100001111111
C. 101010111010
D. 101010101011
当采用海明校验时,海明码为P13 -PI:Q 1010 0101 1111(下画线的为校验位).其中
PI=P38P5(DP7@P9~P1I-I,
P2=P30P60P7QPIOOPII=1,
P4=P5QP60P7~P12—1,
P8-P90PIOOPIIOP12=o.
Pl3位为全校验位,因为P12 -Pl中l的个数为偶数个,故PI3~D:采用CRC时-将信息位左移4位t进行模2除,得余数为l010,故CRC码为10101011 1010。
7.一个n+l位整数x原码的数值范围是( D )。
n+l位整数原码的表示范围为_2n+l≤x≤2n-l。
8.补码定点整数01010101左移两位后的值为( B )。
A. 0100 0111
B. 0101 0100
C. 0100 0110
D. 0101 0101
该数是一个正数,按照算术补码移位规则,正数左右移使均添0‘,且符号位不变,,所以0101 0101左移2位后的值为0101 0100。
9.补码定点整数1001 0101右移l位后的值为( D )。
A. 01001010
B. 0100l010l
C. 10001010
D. 1100 1010
该数是一个负数,按照算术补码移位规则,负数右移添1,负数左移添0.所以1001 0101 右移1位后的值为1100 1010。
10.原码乘法是( A )。
A. 先取操作数绝对值相乘,符号位单独处理
B.用原码表示操作数,然后壹接相乘
C.被乘数用原码表示,乘数去绝对值,然后相乘
D.乘数用原码表示,被乘数去绝对值,然后相乘
原码一位乘法中,符号位与数值位是分开进行运算的。
运算结果的数值部分是乘数与被乘数数值位的乘积,符号是乘数与被乘数符号位的异或。
11.在原码一位乘法中.( B)。
A.符号位参加运算
B.符号位不参加运算
C.符号位参加运算,并根据运算结果改变结果中的符号位
D.符号位不参加运算,并根据运算结果确定结果中的符号
在原码一位乘法中,符号位不参加运算,符号位单独处理,同号为正,异号为负。
12.实现N位(不包括符号位)补码一位乘时,乘积为( C )位
A.N
B. N+l
C.2N
D. 2N+1
补码一位乘法运算过程中一共向右移位N次,加上原先的N位,一共是2N位数值位。
13.下列关于补码除法说法正确的是( B ).
A. 补码不恢复除法中,够减商0,不够减商1
B.补码不恢复余数除法中,异号相除时,够减商0j不够减商1
C.补码不恢复除法中,够减商l,不够减商0
D.以上都不对
补码除法(不恢复余数法/加减交替法).界号相除是看够不够减,然后上商,够减则商0.不够减商1。
14.设[X]补=0.1011 [Y]补=1.1110,求[X+Y]补和[X-Y]补的值。
[X+Y]补=0.1011+ 1.1110=0.1001,
[X-Y]补=0.1011+ 0.0010=0.1101
15.某浮点机,采用规格化浮点数表示,阶码用移码表示(最高位代表符号位).尾数用原码表示。
下列哪个数的表示不是规格化浮点数?( B )
A. 11111111, 1.1000 (00)
B. 0011111, 1.0111 (01)
C. 1000001, 0.1111 (01)
D. 0111111, 0.1000 (10)
阶码尾数阶码尾数原码表示时,首位为l是规格化浮点数。
16.浮点数的IEEE 754标准对尾数编码采用的是( A )。
A. 原码
B.反码
C.补码
D.移码
IEEE 754标准中尾数采用原码表示,且短浮点数、长浮点数采用隐藏位,临时浮点数不采用隐藏位方案。
17.在浮点数编码表示中,( D )在机器数中不出现,是隐含的。
A. 阶码
B.符号
C.尾数
D. 基数
浮点数表示中基数的值是约定好的,故隐含。
18.己知两个实数x=-68,y=-8.25.它们在C语言中定义为float型变量,分别存放在寄存器A 和B中,另外,还有两个寄存器C和D。
A、B、C、D都是32位的寄存器。
请问(要求用十六进制表示二进制序列):
1)寄存器A和B中的内容分别是什么?
2)x和y相加后的结果存放在C寄存器中,寄存器C中的内容是什么?
3)x和y相减后的结果存放在D寄存器中,寄存器D中的内容是什么?
解答:
所以:
符号位为l,尾数为1101 111 0000 0000 Cb000 0000.阶码为127+5=128+4,即10000100。
合起来为:l 1000 0100 110 1111 0000 0000 0000 0000.转换为十六进制形式为:
C26FOOOOH。
所以寄存器D中的内容燕C26FOOOOH。
19.加法器采用并行进位的目的是( C )。
A. 增强加法器功能
B.简化加法器设计
C.提高加法器运算速度
D. 保证加法器可靠性
并行进位可以大大提高加法器的运算速度。