1、编码与进制转换编码 用预先规定的方法将文字、数字或其他对象编成数码 119 120 110 ? 条形码条形码 身份证号码身份证号码 邮政编码邮政编码 区号区号 身份证编码330304 19971027 031 2地址码地址码顺序号顺序号出生日期出生日期校验码校验码 在计算机中,下列信息是如何表示的呢? 9、a、A、+、(、技、术思思 考考进制进制组成的数字组成的数字特点特点十进十进制制0,1,2,3,4,5,6,7,8,9逢十进一逢十进一借一当十借一当十二进二进制制0,1逢二进一借一当二计算机中信息的表示计算机中信息的表示二进制编码二进制编码计算机中的所有信息都采用计算机中的所有信息都采用 “
2、 二进制二进制 ” 来表示来表示.计算机编码 例如: A :01000001 a: 01100001 9: 00111001 林: 11000001 11010110 黑白图中的黑色:0 黑白图中的白色:1计算机为什么不采用十进制,而采用二进制?计算机采用二进制的理由 只有0和1两个状态,需要表示0、1两种状态的电子器件很多,如开关的接通和断开,晶体管的导通和截止、磁元件的正负剩磁、电位电平的低与高等。简易性简易性 二进制数的运算法则少,运算简单,使计算机运算器的硬件结构大大简化(十进制的乘法九九口诀表55条公式,而二进制乘法只有4条规则)。 逻辑性逻辑性 由于二进制0和1正好和逻辑代数的假(
3、false)和真(true)相对应,有逻辑代数的理论基础,用二进制表示二值逻辑很自然。拓展:三进制计算机 随着技术的进步,真空管和晶体管等计算机元器件被速度更快、可靠性更好的铁氧体磁芯和半导体二极管取代。这些电子元器件组成了一个很好的可控电流变压器,这为三进制逻辑电路的实现提供了可能,因为电压存在着三种状态:正电压(1)、零电压(0)和负电压(-1)。三进制逻辑电路非但比二进制逻辑电路速度更快、可靠性更高,而且需要的设备和电能也更少。这些原因促成了三进制计算机的诞生。 a: 0 1 1 0 0 0 0 1计算机中信息的存储单位计算机中信息的存储单位位(比特,位(比特,bit),存储信息的最小单
4、位),存储信息的最小单位0 1 1 0 0 0 0 18个位个位组成组成一个字节一个字节(Byte,缩写为,缩写为B),字节是存储信息的基本单),字节是存储信息的基本单位位存储单位换算存储单位换算1字节(B)8位(bit)1KB1024B 1MB1024KB1GB1024MB 1TB1024GB 答一答 一首5分钟的“平凡之路.MP3”文件大小大约是5( )。 一篇200字的简体中文短文“文章.txt”文件大约是400( ) 当今市场上的优盘存储容量单位通常是( )除了二进制和十进制,生活中还有哪些进制?各种进制各种进制进制进制二进制二进制八进制八进制十进制十进制十六进制十六进制标识标识BOD
5、H例如:例如: 1011B、 1011O、 1011、 1011H。(1011)2 、 (1011)8、 1011、 (1011)16十六进制的数字有:十六进制的数字有:09,A, B, C, D, E, F对于任意一个二进制数对于任意一个二进制数a na n-1a2a1,可以表示为一般式:,可以表示为一般式: an * 2n-1 + an-1 * 2n-2 + + a2 * 21 + a1 * 20二进制数转换为十进制数二进制数转换为十进制数例:例: (11010)2?题:题: (1101) 2 =(?)10 十进制整数转换为二进制数 方法方法: 除以2倒取余法 例例: 14=( ? )2
6、题: 11=(?)2十进制与其他进制的转换 十进制转换为二进制: 短除法:除以2倒取余数 十进制转换为十六进制: 短除法:除以16倒取余数 二进制数a na n-1a2a1转换为十进制: an * 2n-1 + an-1 * 2n-2 + + a2 * 21 + a1 * 20 十六进制数a na n-1a2a1转换为十进制: an * 16n-1 + an-1 * 16n-2 + + a2 * 161 + a1 * 160二进制整数转换为十六进制 从右边开始每4位为一组划分,并将每组的4位二进制转换为1位十六进制数字。例: (110110110)2(?)166B1所以:110110110B1
7、B6H十六进制转换为二进制 每1位十六进制数转换成4位二进制数,不足四位的用0填充高位以足4位。 如:1A2H =?Bn1A2H =110100010B课堂练习 基础:用VB编写一个10进制转2进制的程序 进阶:用VB编写一个10进制转16进制的程序参考代码(取余数)Do While s1 0 s2 = s2 & (s1 Mod 2) s1 = s1 2Loop参考代码(调换文本次序)s3 = For i = 1 To Len(s2) s3 = s3 & Mid(s2, (Len(s2) - i) + 1, 1)Next i参考代码(调换文本次序)s3 = For i = Len(s2) To 1 Step -1 s3 = s3 & Mid(s2, i, 1)Next i思考 能不能不用两次循环?