Upload
justina-day
View
230
Download
0
Embed Size (px)
DESCRIPTION
西南民族大学 编号 07 姓名 谢川. 2.2 进位计数制. 掌握二进制 、八进制、十进制、十六进制等计 数制的概念及其之间的转换方法。. 计数制 ── 是指用一组特定的符号和统一的规则来表示数值 的方 法。 进位计数制 ── 把一组特定的符号按先后顺序排列起来, 由低位向高位进位计数的方法。. 日常生活中:十进制. 计算机领域:二进制、八进制、十六进制. 一、常用的进位计数制. 4 个基本要素:. 数码. 基数. 数位. 位权. - PowerPoint PPT Presentation
Citation preview
西南民族大学
编号 07
姓名 谢川
2.2 进位计数制 掌握二进制 、八进制、十进制、十六进制等计
数制的概念及其之间的转换方法。
一、常用的进位计数制
计数制 ── 是指用一组特定的符号和统一的规则来表示数值 的方 法。 进位计数制 ── 把一组特定的符号按先后顺序排列起来, 由低位向高位进位计数的方法。
日常生活中:十进制
计算机领域:二进制、八进制、十六进制
4 个基本要素:
数码 基数 数位 位权
数码 ── 某种进位计数制中一组用来表示数值的符号。
例如:十进制的数码是 0 、 1 、 2 、 3 、 4 、 5 、 6 、 7 、8 、 9 。
二进制的数码是 0 和 1 。
基数 ── 某种进位计数制中,所有能使用的数码的个数。 例如:十进制的基数是 10 。二进制的基数是 2 。
数位 ── 数码在一个数中所处的位置。 例如:十进制数的个位、十位、百位等等。
位权 ── 是指在某种进位计数制中,每个数位上的数 码所代表的数值的大小,它是以基数为底的幂。
例如 : 十进制数
7×102 8×101 6×100 5×10-1 4×10-2
87 .6 5 4
++++
( K ) R =Kn-1×Rn-1 + Kn-2×Rn-2 +… K1×R1 + K0×R0 +
K-1×R-1 + K-2 ×R-2 +… K-m×R-m
实际上,任何一个数(无论什么进制)的值都可以用位权展开式(按权展开式)来表示,位权展开式又称为“乘权求和”。
一般的,一个有 n 位整数、 m 位小数的 R 进制数 K ,写成
Kn-1Kn-2….K1K0 . K-1K-2….K-m
其位权展开式为:
二进制数 1011.01 的按权展开式为:
例如:十进制数 3014.65 的按权展开式为:
3014.65 = 3×10³ + 0×102 + 1×101 + 4×100 + 6×10-1 + 5×10-2
( 1011.01 ) 2 =
1×23 + 0×22 + 1×21 + 1×20 + 0×2-1 + 1×2-2
1 、 二进制
只有两个数码: 0 和 1 ,基数为 2 ,进位法则是逢二进一,借一当二。
0 + 0 = 0 0 + 1 = 1 1 + 1 = 1 0
1
+ 1
1 0
1 0 1 1
+ 1 1 1
1 0 0 1
— 1 1
01001 0 11
二进制各数位的权是基数 2 的幂次。二进制数整数部分
的位权从最低位开始依次是 20 , 21 , 22 , 23 , 24 ,… .. ,小数
部分的位权从最高位开始依次是 2-1 , 2-2 , 2-3 , 2-4 ,… ..
例如:二进制数( 1011.01 ) 2 可以写成如下按权展开式:
( 1011.01 ) 2 = 1×23 + 0×22 + 1×21 + 1×20 + 0×2-1 + 1×2-2
也可用大写字母 B ( Binary )表示!
计算机内部采用二进制! 主要原因如下:
1 )、容易用器件实现 很容易找到有 2 种稳定状态的器件,分别表示“ 0” 和“ 1” 。2 )、运算规则简单: 0+0=0 0+1=1 1+1=10 0×1=0 1×1=1 可以简化逻辑电路的设计。
3 )、适合逻辑运算
逻辑代数是逻辑运算的理论基础,而“ 0” 和“ 1” 刚好和逻辑代数中的“ false” 和“ true” 相对应。
( 2>3 )=
( 3>2 ) =false true
几个常用的二进制数:
111 = 1000 – 1 1×2 3 - 1 = 7
1111 = 10000 – 1
按权展开为
1111111 = 10000000 – 1
按权展开为 1×2 4 - 1 = 15
按权展开为 1×2 7 - 1 = 127
11111111 = 100000000 – 1
按权展开为 1×2 8 - 1 = 255
.
….. …..
2 、 八进制
有 8 个基本数码:0 、 1 、 2 、 3 、 4 、 5 、 6 、 7 ,基数为 8 ,进位法则是逢八进一,借一当八。
八进制各数位的权是基数 8 的幂次。例如:八进制数( 2317.06 ) 8 ,按权相加展开式为:
( 2317.06 ) 8=2×8³ + 3×8² + 1×8¹ + 7×80 + 0×8-1 + 6×8-2
也可用大写字母 O ( Octonary )表示!
3 、 十六进制
有十六个基本数码: 0 、 1 、 2 、 3 、 4 、 5 、 6 、7 、 8 、 9 、 A 、 B 、 C 、 D 、 E 、 F ,基数为 16 ,进位法则是逢十六进一,借一当十六。数码 A ~ F 分别对应表达十进制数的 10 ~ 15 。
十六进制各数位的权是基数 16 的幂次。
例如:十六进制数( 58AF.9 ) 16 ,按权展开式为:
( 58AF.9 ) 16 =5×16³ + 8×16² + 10×16¹ + 15×160 + 9×16-1
也可用大写字母 H ( Hexadecimal )表示!
二、不同进位计数制之间的转换
1 、 二、八、十六进制数转换到十进制数
方法:二、八、十六进制数转换到十进制数只需按相应进位计数制的位权展开式进行乘权求和,得到的结果即为相应的十进制数。
日常生活中习惯使用十进制数,而计算机内部使用二进制进行运算,由于二进制数位数很多,在书写编程时我们又习惯使用八进制或十六进制,因此必然产生不同进位计数制之间的相互转换问题。
例 2 :
例 3 :
例 1 :( 1011.01 ) 2 = 1×23 + 0×22 + 1×21 + 1×20
+ 0×2-1 + 1×2-2 = 11.25
( 2013 ) 8 = 2×83 + 0×82 + 1×81 + 3×80
= 1024 + 0 + 8 + 3 = 1035
( 1AF.4 ) 16 = 1×162 + 10×161 + 15×160 + 4×16-1
= 256 + 160 + 15 + 0.25 = 431.25
2 、 十进制数转换到二、八、十六进制数
( 1 )十进制数转换成二进制数,整数部分和小数部分 分开处理。
对整数部分是一个连续除 2 的过程:把要转换的数,除以 2 ,得到商和余数,将商继续除以 2 , … .. 直到商为 0 。最后将所有余数倒序排列,得到的数就是转换结果。─ 除基取余法
对小数部分是一个连续乘 2 的过程:把要转换的数,乘以 2 ,取整数,再对小数部分继续乘以 2 , … .. 直到小数部分为 0 或取得要求的小数位数为止。 ─ 乘基取整法
例 4 :把十进制数 125.37 转换为二进制数。
① 对整数部分 125 :
1252 . . . . . . . 1 622 . . . . . . . 0
2 31 . . . . . . . 12 15 . . . . . . . 12 7 . . . . . . . 1
32 . . . . . . . 12 1 . . . . . . . 1
0
倒
排
于是: 125 = ( 1 1 1 1 1 0 1 ) 2
被除数除数 余数
② 对于小数部分 0.37 :
于是: 0.37≈ ( 0.010111 ) 2
0.37 × 2 = 0.74 …… 取整数 0
0.74 × 2 = 1.48 …… 取整数 1
0.48 × 2 = 0.96 …… 取整数 0
0.96 × 2 = 1.92 …… 取整数 1
0.92 × 2 = 1.84 …… 取整数 1
0.84 × 2 = 1.68 …… 取整数 1
顺
排
综合两部分,得到转换结果: 125.37≈ ( 1111101.010111 ) 2
十进制整数→二进制数,能不能不用除基取余法?
—— 拼凑法
92 =
= 1×26 + 0×25 + 1×24 + 1×23 + 1×22 + 0×21 + 0×20
= ( 1 0 1 1 1 0 0 ) 2
64 + 16 + 8 + 4
1 9 = 1 6 + 2 + 1 = ( 1 0 0 0 0 + 1 0 + 1 ) 2
= ( 1 0 0 1 1 ) 2
想一想:
( 2 )十进制数转换成八进制和十六进制的方法和转换 为二进制的方法类似,唯一的变化是基数不同。
十进制数转换成八进制数,整数部分是除 8 取余数,倒序排列;小数部分乘 8 取整,顺序排列。
十进制数转换成十六进制数,整数部分是除 16 取余数,倒序排列;小数部分乘 16 取整,顺序排列。
例 5 :把十进制数 2738.576 转换为八进制数。
①对于整数部分:
于是整数部分: 2738 = ( 5262 ) 8
27388
3428
. . . . . . . 2
428
. . . . . . . 6
8 5. . . . . . . 2
0. . . . . . . 5
倒
排
被除数除数 余数
② 对于小数部分:
于是小数部分: 0.576 ≈( 0.44672 ) 8
0.576×8 = 4.608 ………… 取整数 4
0.608×8 = 4.864 ………… 取整数 4
0.864×8 = 6.912 ………… 取整数 6
0.912×8 = 7.296 ………… 取整数 7
0.296×8 = 2.368 ………… 取整数 2
顺
排
综合两部分,得到转换结果:
2738.576 ≈ ( 5262.44672 ) 8
例 6 :把十进制数 8552.38 转换为十六进制数。
于是整数部分: 8552 = ( 2168 ) 16
①对于整数部分:
855216
53416
. . . . . . . 8
3316
. . . . . . . 6
16 2. . . . . . . 1
0. . . . . . . 2
倒
排
被除数除数 余数
② 对于小数部分:
于是小数部分: 0.38 ≈ ( 0.6147A ) 16
0.38×16 = 6.08 ………… 取整数 6
0.08×16 = 1.28 ………… 取整数 1 0.28×16 = 4.48 ………… 取整数 40.48×16 = 7.68 ………… 取整数 70.68×16 = 10.88 ………… 取整数 10
顺
排
综合两部分,得到转换结果:
8552.38 ≈ ( 2168.6147A ) 16
( A)
3 、 二、八、十六进制数之间的转换
二进制数转八进制数的方法:以小数点为中心,整数部分往左每 3 位二进制位为一组进行分组,最后一组位数不够在左边添 0补足;小数部分往右每 3 位二进制位为一组进行分组,最后一组位数不够在右边添 0补足。然后将每组的 3 位二进制数对应转换成一位八进制数,连起来即可。─ 三位一并法
八进制数的基数是 8 ( 8=23 ),十六进制数的基数为 16 ( 16=24 )。由于二进制、八进制和十六进制的基数之间具有 2 的整指数倍的关系,因而可十分方便地直接进行转换。
例 7 :把( 1 0 1 1 1 0 1 1 1 1 . 0 1 0 1 1 0 1 ) 2 转换为八进制数。
1 3 5 7 62 4.
转换结果为:
( 1011101111.0101101 ) 2 = ( 1357.264 ) 8
对照表001 011 101 111 . 010 110 100
反过来,八进制数转二进制数的方法就是将八进制数每个数位上的数对应转换成 3 位的二进制数再将它们串起来即可。─ 一分为三法
例 8 :把( 12345.67 ) 8 转换为二进制数。
001 010 011 100 101 110 111
转换结果为:
( 12345.67 ) 8 = ( 1 010 011 100 101 . 110 111 ) 2
.
1 72 3 54 . 6
二进制数与十六进制数之间的转换方法同二进制与八进制间的转换方法类似,唯一的变化是每 4 个二进制位对应 1 个十六进制位。 ─ 四位一并法、 一分为四法
例 9 :把( 1 1 1 0 1 1 . 0 1 1 0 1 0 1 ) 2 转换为十六进制数。
转换结果为:( 111011.0110101 ) 2 = ( 3B.6A ) 16
3 B . 6 A
0011 1011 . 0110 1010 对照表
例 10 :把( 20DC . 4A1B ) 16 转换为二进制数。
转换结果为:( 20DC.4A1B ) 16
= ( 10 0000 1101 1100 . 0100 1010 0001 1011 ) 2
0010 0000 1101 1100 . 0100 1010 0001 1011
课后思考:八进制和十六进制之间怎样相互转换?
2 0 D C . 4 A 1 B
10 转 2 最基本!如果 10 转 8 或 16 ,可先 10 转 2 ,再用上述方法转到 8 或 16 即可。