当前位置: 首页> 教育> 锐评 > 软考:软件设计师 知识点整理 1

软考:软件设计师 知识点整理 1

时间:2025/7/9 22:36:51来源:https://blog.csdn.net/konghaoran1/article/details/140101304 浏览次数:0次

一. 计算机组成与体系结构

1. 数据的表示

(1)进制转换

进制数码基数位权
十进制(D)0,1,2,3,4,5,6,7,8,91010^{k}
二进制(B)0,122^{k}
十六进制(H)0~9,A,B,C,D,E,F1616^{k}

按权展开法:

二进制 10100.01 = 1 × 2^{^{4}} + 0 + 1 × 2^{2} + 0 + 0 + 0 + 1 × 2^{-2}

七进制 604.01 = 6 × 7^{_{2}} + 0 + 4 × 7^{^{0}} + 0 + 1 × 7^{_{-2}}

其余进制类似,替换基数即可。

除基取余法:

94 转换为二进制数,

94 / 2 = 47 余 0

47 / 2 = 23 余 1

23 / 2 = 11 余 1

11 / 2 = 5 余 1

5 / 2 = 2 余 1

2 / 2 = 1 余 0

1 / 2 = 0 余 1

直到商为0,得到结果从下往上记录,即 1011110。

转换为十六进制数类似,除以16即可,

94 / 16 = 5 余 14(E)

5 / 16 = 0 余 5

得到结果 5E,通常在后面再加一个 H 表示十六进制,即5EH。

减法(快速转换):

2^{_{0}} = 12^{^{1}} = 22^{_{2}} = 42^{_{3}} = 82^{^{4}} = 162^{^{5}} = 322^{^{6}} = 642^{^{7}} = 1282^{^{8}} = 256

2^{_{9}} = 5122^{^{10}} = 1024

94 转换为二进制,

64 < 94 < 128,小于且离 94 最近的乘幂为 2^{^{6}} = 64,94 - 64 = 30

16 < 30 < 32,小于且离 30 最近的乘幂为 2^{^{4}} = 16,30 - 16 = 14

8 < 14 < 16,2^{_{3}} = 8,14 - 8 = 6

4 < 6 < 8,2^{_{2}} = 4,6 - 4 = 2

2 - 2 = 0, 2^{^{1}} = 2 

结果为 1011110,

位号6543210
取值1011110

二进制转八进制与十六进制:

10001110

转八进制:从最右侧开始,三位为一个整体,高位不够三位补 0。

即 010 001 110 -> 2 1 6

转十六进制:从最右侧开始,四位为一个整体,高位不够补 0。

即 1000 1110 -> 8 E

(2)原/反/补/移码

原码:最高位是符号位,其余低位表示数值的绝对值。

反码:正数的反码与原码相同,负数的反码使其绝对值按位取反,符号位不变。

补码:正数的补码与原码相同,负数的补码使其反码末位加 1 ,符号位不变。

移码:补码的符号位按位取反。

数值 1数值 -11+(-1)
原码0 000 00011 000 00011 000 0010
反码0 000 00011 111 11101 111 1111
补码0 000 00011 111 11110 000 0000
移码1 000 00010 111 11111 000 0000

通常只有补码参与计算,因为其计算结果最为准确:1-1=0,对应 0 000 0000。

码制定点整数定点小数码数个数
原码-(2^{^{n-1}}-1) \sim +(2^{^{n-1}}-1)-(1-2^{^{-(n-1)}}) \sim +(1-2^{^{-(n-1)}})2^{^{n}}-1
反码-(2^{^{n-1}}-1) \sim +(2^{^{n-1}}-1)-(1-2^{^{-(n-1)}}) \sim +(1-2^{^{-(n-1)}})2^{^{n}}-1
补码-2^{^{n-1}} \sim +(2^{^{n-1}}-1)-1 \sim +(1-2^{^{-(n-1)}})2^{^{n}}
移码-2^{^{n-1}} \sim +(2^{^{n-1}}-1)-1 \sim +(1-2^{^{-(n-1)}})2^{^{n}}

可以采用 n = 3 验证,即计算机采用三位的数字表示形式。

整数有:000,001,010,011,100,101,110,111。共 8 种数字。

但 000 和 100 分别表示 +0 和 -0,因此排除 -0,即码数为 7个(原、反)。

在补码和移码中,多了人为规定,没有排除 -0,而是重新利用 -0 ,即 100,将其当作 -2^{^{2}},所以码数仍然为 8 个(补、移)。

小数有:0.00,0.01,0.10,0.11,1.00,1.01,1.10,1.11。共 8 种数字。

原码和反码种同样存在 +0 与 -0,排除 -0,码数为 7 。

补码和移码也同样利用 -0,即 1.00,将其当作完整的数字 -1。所以补码和移码的范围从 -1 开始,并且码数个数为 8 个。

例题1:

采用 n 位补码(包含一个符号位)表示数据,可以直接表示数值()。

A.2^{^{n}}  B.-2^{^{n}}  C.2^{^{n-1}}  D.-2^{^{n-1}}

解析1:

假设 n = 3,分别对应四个选项为 8,-8,4,-4。应当想到补码中有一个人为规定,100 为 -0,重新利用,被当作 -2^{^{2}}即 -4,所以选D。或者直接想到其取值范围,n = 3 时补码的取值范围是 -4 ~ +3。

例题2:

如果 "2X" 的补码时 "90H",那么 X 的真值为()。

A.72  B.-56  C.56  D.111

解析2:

90H 是十六进制数,先转换成二进制数为 1001 0000,并且是补码。需要求真值,即原码,那么需要先将补码转换成反码,再转换成原码。

负数的原码到反码是符号位不变,按位取反,再到补码是反码末位加 1,符号位不变。

那么反过来就是,补码到反码,末位减 1,即 1001 0000 减 1,得到 1000 1111(减一不够就借位,借到第 4 位的 1。),然后再按位取反,得到 1111 0000。但此时仍是 2X 的原码,需要再除以 2,可以先得到原数值为 - 0111 0000,即  -2^{^{4}} +-2^{^{5}} +-2^{^{6}} = -56。其实在看到 1111 0000时已经能得到答案是负数,选B即可。

后续会慢慢更新。

关键字:软考:软件设计师 知识点整理 1

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: