进制转换和原码补码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
必备基础:
第一部分:进制转换
→二进制(Binary):由0~1构成,逢2进1 11B →3D
八进制(Octal):由0~7构成,逢8进1 11Q →9D
十进制(Decimal):由0~9构成,逢10进1 111D →111D
十六进制(Hex):由0~9、A~F构成,逢16进1 11H →17D
→两个基本概念
基数:n进制基数为n
111.11D = 1*102 + 1*101 + 1*100 + 1*10-1 + 1*10-2
位权:小数点左边第k位位权为:基数k-1
小数点右边第k位位权为:基数-k
→进制转换
1.其他进制→十进制(按权展开求和法)
123.45D = 1*102 + 2*101 + 3*100 + 4*10-1 + 5*10-2
11001.11B = 1*24 + 1*23 + 1*20 + 1*2-1 + 1*2-2 = 16+8+1+0.5+0.25
= 25.75D 123.4Q = 1*82 + 2*81 + 3*80 + 4*8-1 = 64+16+3+0.5 = 83.5D
123.4H = 1*162 + 2*161 + 3*160 + 4*16-1 = 256+32+3+0.25
= 291.25D
2.十进制→其他进制
→整数部分:基数除法,倒序取余。
→小数部分:基数乘法,顺序取整。
76.375D = 1001 100.011 B
= 114.3 Q
= 4C.6 H
276 0.375*2=0.75-------0 ↓
38------0 ↑ 0.75*2=1.5--------1↓
19------0 ↑ 0.5*2=1----------1↓
9------1 ↑
4------1 ↑
2------0 ↑
1------0 ↑
0------1 ↑
8 76 = 114Q 0.375D = 0.3Q
9-----4 ↑ 0.375*8 = 3------3 ↓
1------1 ↑
0------1 ↑
16 76 = 4CH 0.375D = 0.6H
4-----C ↑ 0.375*16 = 6--------6 ↓
0-----4 ↑
3.其他进制之间的互相转换
1)二进制与八进制(3位二进制与1位八进制一一对应“421”)
000→0 100→4
001→1 101→5
010→2 110→6
011→3 111→7
001,100,001B→141Q 001,000,001B→101Q
00,110,001B→61Q
753Q→111 101 011B
2)二进制与十六进制(4位二进制与1位十六进制一一对应“8421”)
0000→0 1000→8
0001→1 1001→9
0010→2 1010→A
0011→3 1011→B
0100→4 1100→C
0101→5 1101→D
0110→6 1110→E
0111→7 1111→F
0111,1101,1110B→7DEH
0110,0001B→61H 0100,0001B→41H
6A7DH→0110 1010 0111 1101B
3)八进制与十六进制
第二部分:数据表示
一、整型数据的分类:
1.无符号整型数据:所有位均表示大小。
N位无符号整型数据表示的取值范围为:0~2N-1
2.带符号整型数据:最高位表示符号:0为正、1为负。→常用原码、反码、补码表示。
正数:三码同一。
例:已知x=+76D ,写出x的三码表示(8位)
解:x=+76D=+1001100B
因为x>0
所以:[x]原=[x]反=[x]补=01001100B
负数:
例1:已知x= -76D ,写出x的三码表示(8位)
解:x= -76D= -1001100B
[x]原=1 1001100B
[x]反=1 0110011B
[x]补=1 0110100B
例2:已知:[x]原=[y]反=[z]补=1100 1011B,求出x、y、z的大小关系。
[x]原=1100 1011B → x = -100 1011B
[y]反=1100 1011B
→[y]原=1011 0100B → y= -011 0100B
[z]补=1100 1011B
→[z]原=1011 0101B → z= -011 0101B
所以: y>z>x
8位原码的取值范围:1 111 1111B~0 111 1111B即–(27-1)~ 27-1 -127D~+127D [+0]原:0 000 0000B
[-0]原:1 000 0000B
8位补码的取值范围:1 000 0000B~0 111 1111B即 -27 ~ 27-1 -128D~+127D →N位补码的取值范围:-2N-1~2N-1-1
16位补码整数的取值范围:-32768~+32767