教科版(2019)高中信息技术必修1 第三单元 3.1 数据编码课件(26张幻灯片)

文档属性

名称 教科版(2019)高中信息技术必修1 第三单元 3.1 数据编码课件(26张幻灯片)
格式 pptx
文件大小 233.2KB
资源类型 教案
版本资源 教科版(2019)
科目 信息技术(信息科技)
更新时间 2020-07-22 12:58:25

图片预览

文档简介

第3单元 认识数据
3.1 数据编码(第2课时)
数值与文本的编码
【玩】活动1 卡片组合游戏
【玩中做 做中思】
0.数1,2,4,8,16构成什么数列?公比是多少?
1.用这5张卡片,最大能表示的十进制数是多少(等比数列部分和)?
若用二进制数表示,是多少?如何分别表示十进制数的0,1,2,3,…?
2.如果要表示更大的数,怎么办?例如:255.
3.现有255个相同的苹果,事先分装成若干袋,每袋装若干个苹果,当用户来买苹果时,无论他要多少个([0,255]之内),都可以不拆开袋子,直接选取几个袋子给他。那么事先应该怎样装袋?有多少种装袋方案?如果他要100个苹果,则应给他哪几袋?
一、数值型数据(非负整数)的编码
【悟】二进制与数制转换
把两图关联起来看:
二进制数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,…,称为二进制整数从右到左各位的权值,2是二进制数的基数。二进制数有且仅有2种不同的数字:0和1,基本计数规则是逢二进一,即1+1=10.
一、数值型数据(非负整数)的编码
【悟】二进制与数制转换
回头看十进制数:
如2019(10)=9*100+1*101+0*102+2*103=2019,十进制数的基数是10,十进制整数从右到左各位的权值依次是100,101,102,103,…,十进制数有10种不同的数字:0,1,2,…,9,基本计数规则是逢十进一,即9+1=10.
同理,对于十六进制数来讲,其基数是16,要有16种不同的数字,除了0,1,2,…,9,还需补充6个符号,一般用A~F(a~f),分别相当于十进制数的10~15。基本计数规则是逢十六进一,即F+1=10. 十六进制整数从右到左各位的权值依次是160,161,162,163,….例如十六进制整数2F3D(16)=D(13)*160+3*161+F(15)*162+2*163=12093
数制的这种规律,实现了任何一个整数只有一种表示法,而且任何一种表示法只表示一个整数,即整数与表示法之间是一一对应关系。
一、数值型数据(非负整数)的编码
【练】填写下表,熟悉巩固
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}十进制
二进制
十六进制
十进制
二进制
十六进制
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
?
?
一、数值型数据(非负整数)的编码
【练】请将8进制数2071转换为十进制
一、数值型数据(非负整数)的编码
【做】在Python中,可使用函数int(num,R)将R进制的整数num转换为十进制,这里num要使用字符型(常数两端加上引号)
>>> int('11011010',2) #将二进制整数11011010转换为十进制
218 #返回结果为十进制整数
>>> int('2071',8) #将八进制整数2071转换为十进制
1081 #返回结果为十进制整数
>>> int('FF',16) #将十六进制整数FF转换为十进制
255 #返回结果为十进制整数
一、数值型数据(非负整数)的编码
【学】比特,字节,文件大小的单位
计算机中数据的最小单位是二进制位,称为比特(bit,简写为b)。
计算机存储数据的基本单位是字节(Byte,简写为B),1B=8b
因为计算机内数据都是以二进制形式存储的,所以文件大小的单位也是字节。但字节单位太小,常用的有KB,MB,GB等。
1KB=210B=1024B
1MB=210KB=220B=1,048,576B
1GB=210MB=220KB=230B=1,073,741,824B
递进倍数是210=1024,因此民间把10月24日戏称为“程序员节”。
一、数值型数据(非负整数)的编码
【做】十进制整数转换为其他进制数
把十进制非负整数转换为二进制数,可使用短除法,即“除二取余”法。例如,把十进制整数18转换为二进制数的过程如图3.1.7所示,结果为18(10)=10010(2)。
微课:十进制非负整数转换为二进制
一、数值型数据(非负整数)的编码
【悟】仿照图3.1.7,将十进制整数175转换为16进制
一、数值型数据(非负整数)的编码
【学】在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()函数查看字符的编码
>>> ord('1') #显示字符“1”的编码值
49
>>> ord('A') #显示字符“A”的编码值
65
>>> ord('男') #显示字符“男”的编码值
30007
>>> chr(30007) #显示编码值为30007的字符
'男'
【学】ASCII码
二、文本型数据(字符)的编码
【学】Unicode码
汉字编码之国家标准:
(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个汉字。
Unicode字符集,是全球可以共享的编码字符集,涵盖了世界上主要文字的字符,其中包括简繁体汉字,共计74686个汉字。如汉字“男” 的Unicode编码为30007(十进制),用十六进制表示为7537,用二进制表示为0111010100110111。
在Python中,函数ord()返回的是字符的Unicode码值,函数chr()返回Unicode码对应的字符。
二、文本型数据(字符)的编码
【做】在Python中输出自己的姓名,但表达式中不得直接出现这些汉字
>>> chr(24352)+chr(39134)
'张飞' #返回“张飞”
二、文本型数据(字符)的编码
二、文本型数据(字符)的编码
【了解】汉字的其他编码及相互关系(拓展)
①区位码 在GB2312-80《信息交换用汉字编码字符集》中,所有的国标汉字与符号组成一个94×94的矩阵。在此方阵中,每一行称为一个"区",每一列称为一个"位",因此,这个方阵实际上组成了一个有94个区(区号分别为1到94)、每个区内有94个位(位号分别为1到94)的汉字字符集。一个汉字所在的区号和位号简单地组合在一起就构成了该汉字的"区位码"。在汉字的区位码中,高两位为区号,低两位为位号。 在区位码中,01-09区为682个特殊字符,16~87区为汉字区,包含6763个汉字 。其中16-55区为一级汉字(3755个最常用的汉字,按拼音字母的次序排列),56-87区为二级汉字(3008个汉字,按部首次序排列)。
如“热”字的区位码为4040(第40区第40位)。
二、文本型数据(字符)的编码
【了解】汉字的其他编码及相互关系(拓展)
②国标码 国标码是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,再将这个代码的第一个字节和第二个字节分别加上20H,就得到国标码。如:"热"字的国标码为4848H,它是经过下面的转换得到的:4040D→2828H→+2020H→4848H。
二、文本型数据(字符)的编码
【了解】汉字的其他编码及相互关系(拓展)
③机内码 国标码是汉字信息交换的标准编码,但因其前后字节的最高位为0,与ASCII码发生冲突。如"热"字,国标码为4848H,而英文字符"H"的ASCII也为48H,现假如内存中有两个字节为48H和48H,这到底是一个汉字,还是两个英文字符"H"?于是就出现了二义性,显然,国标码是不可能在计算机内部直接采用的,于是,汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节都加上128(即80H),即将两个字节的最高位由0改1,其余7位不变,如上面我们知道,"热"字的国标码为4848H,加上8080H,因此,“热”字的机内码就是C8C8H。
“热”字的Unicode码为70EDH。Unicode码与机内码(基于我国国标编码),是两套独立的编码体系,相互之间没有固定的转换机制。
查询汉字的机内码与Unicode码
二、文本型数据(字符)的编码
二、文本型数据(字符)的编码
【了解】汉字的其他编码及相互关系(拓展)
④输入码 在使用键盘录入汉字时,要用到输入码。“热”字的全拼输入法编码为re,五笔字型输入法编码为rvyo。
⑤字形码 显示、打印汉字时要用到字库字形。
二、文本型数据(字符)的编码
【了解】汉字的其他编码及相互关系(拓展)
下面的软件,调用了宋体16点阵字库,来显示汉字:
二、文本型数据(字符)的编码
【做】你能写出图中汉字“热”的字形编码吗?用十六进制表示(直接将二进制转换为十六进制,每4位二进制数字对应1位十六进制数字)。汉字“热”的字形编码占多少字节?
二、文本型数据(字符)的编码
【悟】这些“编码”之间既相互联系又有区别,在不同环节下使用,为计算机处理汉字形成了完整的数据链,而这些“编码”就是这条链路上的关键“节点”。
三、小结
二进制的优点与缺点。优点:
1.使计算自动化成为可能。二进制,只有0和1两个状态,具有2个稳定状态的电子器件很多,如开关的接通和断开,晶体管的导通和截止、磁元件的正负剩磁、电位电平的高与低等都可表示0、1两个数码。
2.使自动化计算装置简便可靠。二进制数的运算法则少,运算简单,使计算机运算器的硬件结构大大简化(十进制的乘法九九口诀表55条公式,而二进制乘法只有4条规则)。
3.使自动化逻辑运算简单易行。由于二进制0和1正好和逻辑代数的假(False)和真(True)相对应,有逻辑代数作为理论基础,用二进制能很方便地进行逻辑运算。
基于这3条,计算机系统采用二进制。
缺点:
1.用二进制表示一个数时,位数太多,太繁琐。故有16进制。
2.难于记忆,可读性差。所以,与人类交互时,计算机系统已经尽量隐藏了二进制的内核了,尽可能人性化了(数值则已自动转为十进制了)。
【划重点】本内容学科核心素养之三层架构
学科知识层:数值(整数)的编码,进制(二进制、
十进制、十六进制)的组成规律及相互
转换,文本数据(字符)的编码:ASCII
码和Unicode码,比特与字节,数据类型
(整数、字符串)及相互转化,循环语句
问题解决层:算法(除2取余法),测试(补丁)
学科思维层:抽象、建模、迭代与自动化(通用性)
三、小结
四、练习
【练习1】进制转换
10110100(2)=( )(10) 3D(16)=( )(10)
255(10)=( )(16) 100(10)=( )(2)
E2(16)=( )(2) 11100101(2)=( )(16)
?
【练习2】我们最熟悉的是十进制,在十进制中,有21*12=252,那么这个结论还在哪些进制中成立?为什么?