*做题笔记1
学习内容:
- 教材的思维导图
- 课后练习(计算部分)
- 中国大学MOOC计算机组成原理(计算部分)
1.教材的思维导图
2.课后练习(计算部分)
1.由3个"1"和5个"0"组成的8位二进制补码,能表示的最小整数是__-125___。
既然要求的是最小整数,那么肯定是负数了,那么第一位可以确定为1,然后根据原反补码的计算规则,可以很轻易的排列出
当 补码=10000011 时,反码=10000010,原码=11111101---> 真值= -125
2.考虑以下C语言代码:
unsigned short usi=65535;
short si=usi;
执行上述程序段后,si的值为___-1____。
unsigned short无符号短整型,占2个字节,而short有符号短整型,占2个字节且第一位为符号位,所以将usi赋值给si时,需要注意符号位,简单来说,就是把usi原码算出来,然后根据符号位将真值算出来,就是si的值。
那么[usi] 补码 =1111 1111 1111 1111
[usi] 反码=1111 1111 1111 1110
[usi] 原码=1000 0000 0000 0001
所以,[si] 真值=-1
3.假定编译器规定int和short类型长度分别为32位和16位,执行下列C语言语句:unsigned short x=65530; unsigned int y=x; 得到y的机器数为___0000FFFAH_____。
根据C语言整型数据类型转换方法:
1.相同字长的整型数据转换:不管是有符号转无符号还是无符号转有符号,机器码不变
2.小字长转大字长:无符号小字长转无符号大字长,机器码零扩展;有符号小字长转大字长,机器码符号扩展
3.大字长转小字长,机器码截断 ---P37
所以由题意得,unsigned short转unsigned int,无符号小字长转无符号大字长,机器码零扩展。
unsigned short x=1111 1111 1111 1010
unsigned int y=0000 0000 0000 0000 1111 1111 1111 1010=0000FFFAH
4.有如下C语言程序段:short si=-32767; unsigned short usi=si; 执行上述两条语句后,usi的值为__32769___。
根据前面的整数转换方法,这题是第一种情况,