任务二 了解计算机中的数制与字符编码
这节课我们完成第二个任务——了解计算机中的数制与字符编码
虽然计算机能极快地进行运算,但其内部并不像人类在实际生活中使用的十进制,而是使用只包含0和1两个数值的二进制。人们输入计算机的十进制被操作系统转换成二进制进行计算,计算后的结果又由二进制转换为十进制输出。
计算机为什么采用二进制呢?因为二进制运算规则简单,与十进制数相比,二进制数的运算规则要简单得多,这不仅可以使运算器的结构得到简化,而且有利于提高运算速度,技术上也很容易实现。另外二进制符合逻辑运算的真和假,并且易于进行转换,所以计算机采用二进制是最方便的。
要理解二进制,我们先要了解几个相关知识:数制、数制的转换、字符编码。
计算机中的数制
数制也称进制,是用一组固定的符号和统一的规则来表示数值的方法。
生活中其实很多地方的计数方法都多少有点不同进制的影子。比如我们最常用的10进制,其实起源于人有10个指头,远古以前的人都用手指来计数。如果我们的祖先始终没有摆脱手脚不分的境况,那么我们现在一定是在使用20进制。不同的进制,生活中还有:七进制,比如星期。十二进制,比如“一打”,六十进制,比如分钟……
计算机中通常采用的数制有十进制、二进制、八进制和十六进制。在计算机中,文字、数字、声音、图形图像,视频以及动画等数据都是以二进制形式进行存储的。
学习数制,必须首先掌握数码、基数、数位和位权这几个概念。
数码:也称数符,是数制中表示基本数值大小的不同数字符号。比如:
十进制有10个数码:0、1、2、3、4、5、6、7、8、9;
二进制有2个数码:0和1;
八进制有八个数码:0、1、2、3、4、5、6、7;
十六进制有16个数码:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
基数: 基数就是数制所使用数码的个数。
一般而言,r进制数的基数为r,可供选用的计数符号有r个,分别为0~r-1,每个数位计满r就向其高位进1,即“逢r进一”。
(十六进制与10进制的对应关系是:0-9对应0-9;A-F对应10-15。)
数位:数码在数中的位置。
对于N进制数,各数字符号所处位置的数位计法为:我们以十进制数1234.56为例,以小数点为基准,整数部分自右向左依次为0、1…递增,小数部分自左向右依次为-1、-2…递减。
例如十进制数:1234.56
1 2 3 4. 5 6
千 百 十 个 十 百
位 位 位 位 分 分
位 位
数位 3 2 1 0 -1 -2
位权:“位权”又简称“权”,是指数制中某一位上的1所
表示数值的大小。例如如十进制第2位的位权为10,第3位的位权为100;而二进制第2位的位权为2,第3位的位权为4。
某一位位权的大小具体计算方法为:以基数为底,数字符号所处位置的数位为指数的整数次幂。
不同的进位制,处于同一数位上的位权是不同的,虽然数位相同,但是基数不同,所以整数次幂也不相同。
数码所表示的数值等于该数码它所在数位的位权。
进制的转换
虽然不同进制数之间的转换过程是计算机自动完成的,但我们仍有必要了解不同进制数之间的转换方法:
将r进制转换为十进制
方法是:将r进制按权位展开,然后各项相加,就得到相应的十进制数。
例如:
二进制数转换为十进制数:
2=1×27+1×26+1×24+1×23+1×20=21710
(10010.011)2 =1×24+1×21+1×2-2+1×2-3=18.37510
八进制数转换为十进制数:
(37)8=3×81+7×80=3110
(22.3)8=2×81+2×80+3×8-1=(18.375)10
十六进制数转换为十进制数:
(A7)16=10×161+7×160=16710
(32CF.4B)16=3×163+2×162+C×161+F×160+4×16-1+B×16-2
=3×163+2×162+12×161+15×160+4×16-1+11×16-2
=(13007.292969)10
将十进制转换为r进制
对具有整数和小数两部分的十进制数,要将其整数部分和小
数部分分别进行转换,然后用小数点连接起来。
我们先以十进制数转换为二进制数举例,来详细说明具体转
换方法:
十进制整数转换为二进制整数采用“除r取余,逆序排列”
法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把所得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来,就是相应的r进制数。