(共23张PPT)
1、数据的表现形式、采集设备、处理软件等
2、模拟数据数字化过程
知识回顾:
第3单元 认识数据
3.1 数据编码
数值与文本的编码
学习目标
认识二进制,了解文本的编码。
二进制与其他进制的转换。
【玩】活动1 卡片组合游戏
【玩中做 做中思】
1.十进制数9用卡片怎么表示?那1,2,4,8,16呢?
2.用这5张卡片,最大能表示的十进制数是多少?
若用二进制数表示,是多少?如何分别表示十进制数的0,1,2,3,…?
3.如果要表示更大的数,怎么办?例如:255
一、数值型数据(非负整数)的编码
【悟】二进制与数制转换
把两图关联起来看:
二进制数01001所表示的数的含义就是
1*1+0*2+0*4+1*8+0*16=1*20+0*21+0*22+1*23+0*24=9
其中20,21,22,23,24,…,称为二进制整数从右(低位)到左(高位)各位的权值,每位权值为 ,n表示位数。2是二进制数的基数,多少进制基数就是多少。二进制数有且仅有2种不同的数字:0和1,基本计数规则是逢二进一,即1+1=10。
1 0 0 1
权值:8, 4, 2, 1
权值公式:
低
高
【学】比特,字节,文件大小的单位
计算机中数据的最小单位是二进制位,称为比特(bit,简写为b)。
计算机存储数据的基本单位是字节(Byte,简写为B),1B=8b
因为计算机内数据都是以二进制形式存储的,所以文件大小的单位也是字节。但字节单位太小,常用的有KB,MB,GB等。
1B=8b
1KB=210B=1024B
1MB=210KB=220B=1,048,576B
1GB=210MB=220KB=230B=1,073,741,824B
递进倍数是210=1024,因此民间把10月24日戏称为“程序员节”。
一、数值型数据(非负整数)的编码
【学】二进制数转换为十进制
一、数值型数据(非负整数)的编码
二进制转十进制:
将该二进制数的每个位置上的数字与其对应位置的权值相乘,然后求和即可。
Eg:(10010)2 =1* +0+0+1* +0=16+2=18
【悟】非十进制转十数制
类比二进制转十进制数位乘位权求和的方法,我们可得八进制数转十进制:
如2021(8)=2*83+0+2*81+1*8o=1041,八进制数的基数是8,八进制整数从右到左各位的权值依次是80,81,82,83,…,八进制数有8种不同的数字:0,1,2,…,7,基本计数规则是逢八进一,即7+1=10。
Eg:(73)8 =7*81+3*80=59
同理,对于十六进制数来讲,其基数是16,要有16种不同的数字,除了0,1,2,…,9,还需补充6个符号,一般用A~F(a~f),分别相当于十进制数的10~15。基本计数规则是逢十六进一,即F+1=10. 十六进制整数从右到左各位的权值依次是160,161,162,163,….例如十六进制整数2F3D(16)=2*163+F(15)*162+3*161+D(13)*160=12093
一、数值型数据(非负整数)的编码
一般地,非十进制(R进制)基数为R,转成十进制采用“按权展开求和”法。每位对应权值为 。
【练】非十进制转十数制
10110100(2)=( )(10)
255(8)=( )(10)
E2(16)=( )(10)
180
173
226
【学】十进制整数转换为二进制数
把十进制非负整数转换为二进制数,可使用短除法,即“除二取余”法。例如,把十进制整数18转换为二进制数的过程如图3.1.7所示,结果为18(10)=10010(2)。
一、数值型数据(非负整数)的编码
一般地,十进制非负整数转成R进制(R>=2)基数为R,采用“除R逆向取余法”。
逆写
一、数值型数据(非负整数)的编码
【练】仿照图3.1.7:
1、将十进制整数75转换为2进制
2、将十进制整数75转换为8进制
3、将十进制整数75转换为16进制
补充:
八进制转二进制:“一分三”,反之,“三合一”。
十六进制转二进制:“一分四”,反之,“四合一”。
(53)8
(101011)2
【练】填写下表,熟悉巩固
十进制 二进制 十六进制 十进制 二进制 十六进制
0 16
1 17
2 18
3 19
4 20
5 21
6 22
7 23
8 24
9 25
10 26
11 27
12 28
13 29
14 30
15 31
十进制 二进制 十六进制 十进制 二进制 十六进制
0 0 0 16 10000 10
1 1 1 17 10001 11
2 10 2 18 10010 12
3 11 3 19 10011 13
4 100 4 20 10100 14
5 101 5 21 10101 15
6 110 6 22 10110 16
7 111 7 23 10111 17
8 1000 8 24 11000 18
9 1001 9 25 11001 19
10 1010 A 26 11010 1A
11 1011 B 27 11011 1B
12 1100 C 28 11100 1C
13 1101 D 29 11101 1D
14 1110 E 30 11110 1E
15 1111 F 31 11111 1F
一、数值型数据(非负整数)的编码
【学】在Python中,可使用函数int(num,R)将R进制的整数num转换为十进制,这里num要使用字符型(常数两端加上引号)
>>> int('11011010',2) #将二进制整数11011010转换为十进制
218 #返回结果为十进制整数
>>> int('2071',8) #将八进制整数2071转换为十进制
1081 #返回结果为十进制整数
>>> int('FF',16) #将十六进制整数FF转换为十进制
255 #返回结果为十进制整数
一、数值型数据(非负整数)的编码
【学】在Python中,可使用函数bin(num),oct(num),hex(num),将十进制整数num分别转换为二、八、十六进制,这里num为整数
>>> bin(100) #将十进制整数100转换为二进制
'0b1100100' #返回结果为字符串,前缀0b表示二进制
>>> oct(100) #将十进制整数100转换为八进制
'0o144' #返回结果为字符串,前缀0o表示八进制
>>> hex(100) #将十进制整数100转换为十六进制
'0x64' #返回结果为字符串,前缀0x表示十六进制
一、数值型数据(非负整数)的编码
二、文本型数据(字符)的编码
【做】活动2 查看数据的编码
在Python中,通过ord()函数查看字符的编码,函数chr()返回对应的字符。
>>> ord('1') #显示字符“1”的编码值
49
>>> ord('A') #显示字符“A”的编码值
65
>>> ord('男') #显示字符“男”的编码值
30007
>>> chr(30007) #将编码值转为对应字符
'男'
【学】ASCII码
二、文本型数据(字符)的编码
用于文本数据字符编码的方案有多种类型,其中ASCII码和unicode
是典型的2种方案。
用7位或8位二进制数表示一个字符,集中定义了大小写英文字母,标点符号和数字等字符和符号,共128个。
计算机内部用一个字节来存放一个ASCII码字符,最高位用0表示,例如,“A”的ASCII码为01000001,即65。
【学】Unicode码
1. 产生原因:解决传统字符编码方案的局限性,用2个字节表示一个符号。
2. ASCII码与unicode码的关系:后者兼容前者,是全球可以共享的编码字符集。原来用ASCII码能表示的字符,其对应的unicode码只是在原来的ASCII码前加上8个0。比如“a”的ASCII码是01100001,其unicode码是00000000 01100001
3. 计算机要处理汉字,必须对每个汉字进行编码,每个汉字至少需要2个字节。
4. 汉字编码方案:
(1)GB 2312—1980字符集共收录6763个汉字
(2)GBK字符集,兼容GB 2312—1980标准,收入21003个汉字
(3)GB 18030—2000字符集,包含GBK字符集和CJK统一汉字扩充A的汉字,共计27533个汉字;
(4)GB 18030—2005字符集,在GB 18030—2000的基础上,增加了CJK统一汉字扩充B的汉字及其他汉字, 共计70244个汉字。
扩展一:
除了文本数据、声音数据外,其他类型的数据也都有各自的编码方式。
与声音数据类似,图像数据的数字化,也需要先进行采样。视频是图像(称为帧)在时间上的表示,一段视频就是一系列的帧连续播放而形成的,同时,视频往往有伴音。由于视频常常数据量很大,往往要压缩存储。
二进制的优点与缺点。优点:
1.使计算自动化成为可能。二进制,只有0和1两个状态,具有2个稳定状态的电子器件很多,如开关的接通和断开,晶体管的导通和截止、磁元件的正负剩磁、电位电平的高与低等都可表示0、1两个数码。
2.使自动化计算装置简便可靠。二进制数的运算法则少,运算简单,使计算机运算器的硬件结构大大简化(十进制的乘法九九口诀表55条公式,而二进制乘法只有4条规则)。
3.使自动化逻辑运算简单易行。由于二进制0和1正好和逻辑代数的假(False)和真(True)相对应,有逻辑代数作为理论基础,用二进制能很方便地进行逻辑运算。
基于这3条,计算机系统采用二进制。
缺点:
1.用二进制表示一个数时,位数太多,太繁琐。故有16进制。
2.难于记忆,可读性差。所以,与人类交互时,计算机系统已经尽量隐藏了二进制的内核了,尽可能人性化了(数值则已自动转为十进制了)。
扩展二:
【了解】汉字的其他编码及相互关系(拓展)
扩展三:
三、总结
回顾二进制、八进制、十六进制特点。
非十进制(2、8、16等)与十进制的转换:按权展开求和。
十进制转成非十进制(2、8、16等):除基取余逆写。
了解文本的编码:ASCII码与unicode码。
了解我国汉字编码的发展历程。
四、练习
【练习1】进制转换
10110100(2)=( )(10) 3D(16)=( )(10)
255(10)=( )(16) 100(10)=( )(2)
E2(16)=( )(2) 11100101(2)=( )(16)
【练习2】我们最熟悉的是十进制,在十进制中,有21*12=252,那么这个结论还在哪些进制中成立?为什么?