师:同学们,今天我们学习高一教科版信息技术必修一、第三单元数据编码的第二课时。本节课学习目标如下:一、认识二进制;二、了解进制数的计数方法;三、掌握二进制及二进制与十六进制之间转换的方法;四、掌握用Python转换数值以及查看字符编码的方法;五、了解文本数据的编码。
师:请同学们回顾一下,我们常用的十进制是如何计数的呢?
生:十进制的计数规则是逢十进一。
师:非常好。那二进制是怎样的一种形式?进制之间又是如何转换的呢?下面进入今天的学习。我们先来学习二进制。二进制只有0和1两个数字符号,它的基本计数规则是逢二进一。下面我们来看一张表格,十进制数1对应的二进制数是001,根据二进制的计数规则“逢二进一”,十进制数2对应的二进制数就是010,3是011,4就是100,5是101,6是110,7是111,8根据“逢二进一”转为二进制就是1000,以此类推。
师:计算机外部各种形式的数据经过编码,都是以二进制的形式存储在计算机里的。二进制位用比特(bit,简写为小写的b)表示,它是计算机中存储数据的最小单位。1比特可以表示0或1这两种状态,2比特可以表示00、01、10、11这4种状态,而8比特构成一个字节,可以表示256种,也就是2的8次方种状态。
师:那什么是字节呢?字节(BYTE,简写为大写的B)是计算机中存储数据的基本单位,一个字节通常8位长,也就是1字节等于8位。那么我们什么时候使用字节,什么时候使用位呢?
生:数据存储以字节为单位,而数据传输大多以位为单位。
师:没错。我们知道计算机中的数据量非常庞大,除了字节这个存储单位之外,还有一些其他单位。1字节等于8位,1KB等于1024B,1MB等于1024KB,1GB等于1024MB,1TB等于1024GB,这个单位的换算是需要同学们掌握的。
师:我们已经了解了二进制,那么数制之间是如何转换的呢?首先我们先来了解一个概念,叫做权值。每一个数字符号在不同的位置都具有不同的权值,比如我们常用的十进制数,10是十进制的基数,个位上的权值是基数10的若干次幂。举个例子,比如十进制数285,它对应的个位上的权值从右往左就是10的0次方、10的一次方、10的二次方。
师:其实其他数制也有这样的规律,对于任何一种进制,每一位上的数制运算时都是逢r进一,r是此进制数的基数,那么个位上的权值就是基数r的若干次幂,从右往左的权值是r的0次方、r的一次方、r的二次方……比如二进制,它各位权值是基数2的若干次幂,从右往左的权值为2的0次方、2的一次方、2的二次方等。举个例子,比如二进制数10001,那么它对应的个位上的权值从右往左就是2的0次方、2的一次方、2的二次方、2的3次方和2的4次方。下面我们来看一下如何把r进制非负整数转换为十进制非负整数。把二进制非负整数转为十进制非负整数,我们使用的方法叫做按权展开求和法,在这里r指不小于2的整数。具体的计算方法是将该进制数每个位置上的数字符号与其相对应位置的权值相乘,然后再相加即可。比如二进制数10001转换成十进制数。
师:我们先找到每个位置上数字符号和它相对应位置的权值,也就是2的0次方、2的一次方、2的二次方、2的3次方和2的4次方。然后将其相乘再相加,也就是1乘以2的4次方加上0乘以2的3次方,加上0乘以2的2次方,加上0乘以2的一次方,加上1乘以2的0次方,这样我们就可以得到结果为17。
师:那么十六进制的转换又是怎样的呢?十六进制数,它的基数是16,有16种不同的数字符号。我们来看一下这张表格,十进制数1,对应的十六进制数是1,十进制数2对应的十六进制数是2,以此类推,十进制数9对应的十六进制数是9,而十进制数10对应的十六进制数是大写字母A,十进制数15对应的十六进制数是大写字母F。十六进制,它的基本计数规则是逢十六进一,那么十六进制个位上的权值从右往左就是16的0次方、16的一次方、16的二次方和16的三次方。下面我们来看一道例题,把十六进制数2F3D转为十进制数,同样也使用按权展开求和法。十六进制数它的权值从右往左是16的0次方、16的一次方、16的二次方和16的三次方,然后把它和相对应的数相乘,再相加即可,也就是2乘以16的三次方,加上F乘以16的二次方,加上3乘以16的一次方,加上D乘以16的0次方。在这里我们需要把F转为15,把D转为13,最后计算出来得到十进制数的结果为12093。下面请同学们拿出纸和笔练一练,把二进制非负整数转为十进制非负整数的例题一,请将二进制数11001转换为十进制。
生:我们同样采用按权展开求和法,然后把权值跟相对应的数字符号相乘,再相加即可,也就是1乘以2的4次方,加上1乘以2的3次方,加上0乘以2的2次方,加上0乘以2的一次方,加上1乘以2的0次方,得到它的结果是25。
师:非常好。第二题,请将八进制数2071转换为十进制。首先我们要知道八进制数它的基数是8,因此它的权值从右往左为8的0次方、8的一次方、8的二次方和8的三次方,然后再把权值和相对应的数字符号相乘再相加。也就是2乘以8的三次方,加上0乘以8的二次方,加上7乘以8的一次方,加上1乘以8的0次方,即可得出结果为1081。
