第一题
a.把26转成二进制
所以26的二进制是 11010
b.把35转成二进制
答案为: 0010 0011
c.把451转成二进制
答案为: 0001 1100 0011
d.把2039转成二进制
所以答案是: 0111 1111 0111
第二题
将abcd转成八进制
a.011 010
b.35,二进制是100 011
c.451
二进制为0001 1100 0011
也是三位三位分开
111 000 011
所以转为八进制是703
d.2039转成二进制是0111 1111 0111
三位三位分开是: 011 111 110 111
所以转成八进制是 3767
第三题,把abcd转成十六进制
a.26的二进制是0001 1010
b.35转成二进制是 0010 0011
c.451转成二进制是 0001 1100 0011
d.2039转成二进制是0111 1111 0111
a.209.25,209转成二进制是: 1101 0001
0.25转成二进制
所以209.25的二进制就是 1101 0001.01
题目说要精确到小数点后4位
所以是 1101 0001.0100
b.3465.34转成二进制
首先3465的二进制是: 1101 1000 1001
小数部分0.34的二进制
所以3465.34的二进制是: 1101 1000 1001.01010
精确到小数点后四位就是 1101 1000 1001.0101
c.21.97
21转成二进制是0001 0101
0.97转成二进制
所以21.97转成二进制就是0001 0101.11111
精确到小数点后四位要往前进位,就变成了
0001 0110.0000
d.14.11转成二进制
14转成二进制是: 1110
0.11转成二进制
所以14.11转成二进制是 1110.00011
精确到小数点后四位就是 1110.0010
第五题
a.
101101+
010101=
b.
100111-
011100=
c.
1101110+
0111100+
0100101=
d.
10110*110
第六题
a.如果1011 0010 1100 1010表示的是无符号的正整数,那么是多少
32768+8192+4096+
512+128+64+
8+2
=45770
b.如果1011 0010 1100 1010表示的是有符号位的整数,那么是多少
8192+4096+
512+128+64+
8+2
=-(13002)
=-13002
c.如果1011 0010 1100 1010表示的是一个数的补码,那么这个数是多少
首先将1011 0010 1100 1010-1
=1011 0010 1100 1001
除去符号位就是
011 0010 1100 1001
然后把这个数取反
100 1101 0011 0110
然后加上符号位就是
1100 1101 0011 0110
16384+2048+1024+256+
32+16+4+2
=-19766
第七题
最大是7,最小是-8和-7
最大是15,最小是-16和-15
最大是511,最小是-512和-511
最大是32767,最小是-32768和-32767
第八题
07的补码是0111
10的补码是1010
加出来的是0001 0001,结果是17
07的原码是0111
07的补码是0111
-10的原码是 1000 1010
-10的反码是 1111 0101 (原码取反)
-10的补码是 1111 0110 (补码加1)
那么
0000 0111+
1111 0110=
1111 1101
1111 1101是result的补码
1111 1101-1=1111 1100是result的反码
1000 0011是result的原码
result为-3
第九题
先来看看ab
然后看c和d,
0+(-1),,,,,,,0+(-2)
首先要搞清楚
-1的补码是多少,,,如果这里只有2位,那么
-1的原码是11
-1的反码是10
-1的补码是11
然后是-2的补码,按理说,应该起码有3位来表示,所以
-2的原码是110
-2的反码是101
-2的补码是110
然后看e,f,
1+1,,,,,1+(-1)
-1的补码是11
这里我们要统计一下刚刚所有的C(n)和C(n-1)
a 00
b 00
c 00
d 00
e 01
f 11
然后是g和h
1+(-2)
-1+ (-1)
-1的补码是11
-2的补码是110
这道题我还是不太懂,
我需要问问别人
第二个练习
第一题
a. 0000 0000
这个表示的是什么
我们需要查一个表
OK, 0000 0000表示的就是0
b.8000 0000
根据这个表
8000 0000代表的是-0
这里我们重新复习一下IEEE浮点数
这个题目中,用的是32位IEEE浮点数,是十六进制
几位可以表示十六进制,就是4位
所以32位IEEE浮点数就是8位十六进制表示
这个公式非常重要,要牢记
(-1)^S * 2^(E-B) * (1+F)
然后我们来做个练习,把4040 0000转成十进制
c.4120 0000
然后我们把4120 0000这个十六进制IEEE浮点数转成十进制
d.C100 0000
e.7F8A AB67
f.0010 0000
第二题
a.9
b.100
4. -1/4 也就是-0.25
第三题
a.+9
b.+100
c.-0.25
转成64位双精度浮点数
和32位单精度浮点数是一个道理
我们重复一下
32位单精度, 1位表示符号,8位表示整数,23位表示小数
64位双精度, 1位表示符号,11位表示整数,52位表示小数
a.+9转成双精度
b.+100转成双精度
c.-1/4 -0.25转成双精度
第四题
a.7位表示整数,2位表示小数,那么range范围是多少, accuracy精度是多少
我们来复习一下范围和精度
比如0.1,,,,4.6,,,,8.9
范围就是[0.0,9.9]
精度就是0.1
那么我们看,如果整数7位,小数2位,而且负数是用补码计算的
那么第一位是符号位,剩下6位表示整数,,,
最大的情况就是0111111,也就是63,,,,,
那么-63的原码是1111111,,,-63的反码是1000000
-63的补码是1000001
所以补码1000000可以用来表示-64
所以整数范围是[-64,63]
再来看小数部分,两位表示小数
00 0.00
01 0.25
10 0.50
11 0.75
所以小数的精度为0.25
所以范围range为[-64.00,63.75]
所以精度precision为0.25
然后要用这9位来表示
a.+38
b.-10
c.+14.25
d.-0.5
a.+38,,,6位整数是10 0110
所以
0100110.00
b.-10,,,6位整数是00 1010
原码是100 1010
反码是111 0101
补码是111 0110
c.+14.25,6位整数是00 1110
所以000 1110.01
d.-0.5,,,6位整数是000000
原码是100 0000.10
反码是111 1111.10
补码是100 0000.10
第五题
二进制数为
1011 0011 1010 1000
a.四位十六进制数就是B3A8
b.如果这个二进制数是两个8位的补码,那么整数是多少
1011 0011和1010 1000
补码是1011 0011
反码是1011 0010 (补码-1)
原码是1100 1101
所以是-77
补码是1010 1000
反码是1010 0111
原码是1101 1000
所以是-88
c.
as a floating point number where the first bit is the sign, bits 2 to 7 represent a 6 bit exponent stored in "excess 32", the remainder of the bits represent the 9 bit mantissa with the leftmost bit of the mantissa representing the 2^0, or units column. Approximate your answer in decimal
现在一共是16位,第一位是符号位,2到7是6个整数位,剩下9位是小数位,精确一下答案
1011 0011 1010 1000
1 011 001 1 1010 1000
- 25 2^0 0.5,,,,0,,,,,0.25,,,,,0,,,,,0.125
-(25+1+0.75+0.125)
= - 26.875