1、06 循环分支运用循环分支运用 程序设计基础 2 home back first prev next last 本节目标本节目标 数字进制转换数字进制转换 十进制十进制 二进制二进制 十六进制十六进制 回文数判别回文数判别 非字符串分解方式非字符串分解方式 3 home back first prev next last 数字进制数字进制 10-1 十进制数十进制数(Decimal Number) 十进制数是日常生活中使用最广的计数制。组十进制数是日常生活中使用最广的计数制。组 成十进制数的符号有成十进制数的符号有0,1,2,3,4,5,6,7, 8,9等共十个符号,我们称这些符号为数码。等共
2、十个符号,我们称这些符号为数码。 在十进制中,每一位有在十进制中,每一位有09共十个数码,所以共十个数码,所以 计数的计数的基数为基数为10。超过。超过9就必须用多位数来表示。就必须用多位数来表示。 十进制数的运算遵循加法时:“逢十进一”,十进制数的运算遵循加法时:“逢十进一”, 减法时:“借一当十”。减法时:“借一当十”。 4 home back first prev next last 数字进制数字进制 10-2 二进制数二进制数(Binary Number) 与十进制相似,二进制数也遵循两个规则:仅与十进制相似,二进制数也遵循两个规则:仅 有两个不同的数码,即有两个不同的数码,即0,1;
3、进;进/借位规则为:逢借位规则为:逢 二进一二进一,借一当二。借一当二。 将将8位位(bit)二进制数称为一个字节二进制数称为一个字节,字节是计算字节是计算 机存储信息的基本数据单位。这就要说到存储机存储信息的基本数据单位。这就要说到存储 器的容量单位:器的容量单位: 1024B=1K 1024KB=1M 1024MB=1G 5 home back first prev next last 数字进制数字进制 10-3 十六进制十六进制 是计算机系统中除二进制数之外使用较多的进是计算机系统中除二进制数之外使用较多的进 制制 二进制数在计算机系统中处理很方便,但当位二进制数在计算机系统中处理很方便
4、,但当位 数较多时,比较难记忆及书写,为了减小位数,数较多时,比较难记忆及书写,为了减小位数, 通常将二进制数用十六进制表示通常将二进制数用十六进制表示 其遵循的两个规则为:其有其遵循的两个规则为:其有 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F等共十六个数码,等共十六个数码, 其分别对应于十进制数的其分别对应于十进制数的015; 十六进制十六进制 数的加减法的进借位规则为:借一当十六,数的加减法的进借位规则为:借一当十六, 逢十六进一。逢十六进一。 6 home back first prev next last 数字进制数字进制 10-4 十六进制十六进制 在数制使用时
5、,常将各种数制用简码来表示:在数制使用时,常将各种数制用简码来表示: 如十进制数用如十进制数用D表示或省略;二进制用表示或省略;二进制用B来表示;来表示; 十六进制数用十六进制数用H来表示来表示 如:十制数如:十制数123表示为:表示为:123D或者或者123;二进制数二进制数 1011表示为表示为:1011B;十六进制数;十六进制数3A4表示为表示为:3A4H。 7 home back first prev next last 数字进制数字进制 10-5 十进制 二进制 十六进制 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6
6、0110 6 7 0111 7 十进制 二进制 十六进制 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F 16 10000 10 8 home back first prev next last 数字进制数字进制 10-6 二进制与十进制的转换二进制与十进制的转换 二进制数二进制数1101等于等于 1*20+0*21+1*22+1*23=1+0+4+8=13 。转化成十进。转化成十进 制要从右到左用二进制的每个数去乘以制要从右到左用二进制的每个数去乘以2的相应的相应 次方,从次方,从2的
7、的0次方开始次方开始 这种做法称为“按权相加”法。这种做法称为“按权相加”法。 9 home back first prev next last 数字进制数字进制 10-7 十进制转二进制十进制转二进制 用用2辗转相除至结果为辗转相除至结果为1,将余数和最后的,将余数和最后的1从下向上倒从下向上倒 序写,就是结果。例如序写,就是结果。例如302: 302/2 = 151 余余 0 151/2 = 75 余余 1 75/2 = 37 余余 1 37/2 = 18 余余 1 18/2 = 9 余余 0 9/2 = 4 余余 1 4/2 = 2 余余 0 2/2 = 1 余余 0 1/2 = 0 余
8、余 1 故二进制为故二进制为100101110 10 home back first prev next last 数字进制数字进制 10-8 二进制与十六进制的转换二进制与十六进制的转换 原则:每原则:每4位二进制对应位二进制对应1位位16进制,高进制,高4位不足位不足 的前面补的前面补0 39H= 00111001B 4FH= 01001111B 11111B = 00011111B = 1FH 11 home back first prev next last 数字进制数字进制 10-9 十进制与十六进制的转换十进制与十六进制的转换 先除先除2取余,将十进制转换成二进制,再按照取余,将十
9、进制转换成二进制,再按照4 位二进制对应位二进制对应1位位16进制,转换成十六进制数进制,转换成十六进制数 十六进制转换成十进制:十六进制转换成十进制: 226H = 2162+2161+6160 = 550D 12 home back first prev next last 数字进制数字进制 10-10 1101 如果是二进制数字如果是二进制数字 表示表示 1*23 + 1*22 + 0*21 + 1*20 1101 如果是十进制数字如果是十进制数字 表示表示 1*103 + 1*102 + 0*101 + 1*100 1101 如果是十六进制数字如果是十六进制数字 表示表示 1*163
10、+ 1*162 + 0*161 + 1*160 1101 如果是如果是W进制数字进制数字 表示表示 1*W3 + 1*W2 + 0*W1 + 1*W0 每个每个1代表的含义是代表的含义是 不同的。十进制中不同的。十进制中 十位的十位的1代表代表10,百,百 位的位的1代表代表100,每位,每位 数字中数字中1代表的大小,代表的大小, 叫该位的叫该位的权重权重。 W进制数字中从右向进制数字中从右向 左数左数第第n位数字的权位数字的权 重是重是 Wn-1 13 home back first prev next last 练习练习1: 二进制转十进制二进制转十进制 接受用户输入的二进制数据,转换为
11、十进接受用户输入的二进制数据,转换为十进 制数字输出制数字输出 14 home back first prev next last 练习练习1: 二进制转十进制二进制转十进制 接受用户输入的接受用户输入的 二进制数据,转二进制数据,转 换为十进制数字换为十进制数字 输出输出 15 home back first prev next last 练习练习2: 十进制转二进十进制转二进 制制 接受用户输入接受用户输入 的二进制数据,的二进制数据, 转换为十进制转换为十进制 数字输出数字输出 16 home back first prev next last 回文数判别回文数判别 “回文数回文数“是一
12、种数字,其特点是正读倒读一是一种数字,其特点是正读倒读一 样。如样。如: 98789, 正读是正读是98789,倒读也是倒读也是98789 练习练习3:判断用户输入的数字是否为回文数:判断用户输入的数字是否为回文数 一种思路是将用户输入的数字当作字符串。然一种思路是将用户输入的数字当作字符串。然 后将字符串的每个字符从头到尾依次取出来,后将字符串的每个字符从头到尾依次取出来, 然后从后到前再拼成一个新的字符串,如果两然后从后到前再拼成一个新的字符串,如果两 个字符串相同,则用户输入的数字为回文数。个字符串相同,则用户输入的数字为回文数。 另一种思路是把用户输入的数字当作数字,通另一种思路是把用
13、户输入的数字当作数字,通 过取余数得到各位数字,颠倒顺序后再重新组过取余数得到各位数字,颠倒顺序后再重新组 装为新的数字,如果两个数字相同,则用户输装为新的数字,如果两个数字相同,则用户输 入的数字为回文数。入的数字为回文数。 17 home back first prev next last 回文数判别回文数判别 现在采取第二现在采取第二 种办法,程序种办法,程序 如右图所示:如右图所示: 18 home back first prev next last 作业作业 编程实现二进制和十六进制的互相转换编程实现二进制和十六进制的互相转换 编程实现十进制和十六进制的互相转换编程实现十进制和十六进制的互相转换 19 home back first prev next last 总结总结 数字进制转换数字进制转换 十进制十进制 二进制二进制 十六进制十六进制 回文数判别回文数判别 非字符串分解方式非字符串分解方式