1homebackfirstprevnextlast本节目标•数字进制转换–十进制–二进制–十六进制•回文数判别–非字符串分解方式2homebackfirstprevnextlast数字进制10-1•十进制数(DecimalNumber)–十进制数是日常生活中使用最广的计数制。组成十进制数的符号有0,1,2,3,4,5,6,7,8,9等共十个符号,我们称这些符号为数码。在十进制中,每一位有0~9共十个数码,所以计数的基数为10。超过9就必须用多位数来表示。十进制数的运算遵循加法时:“逢十进一”,减法时:“借一当十”。3homebackfirstprevnextlast数字进制10-2•二进制数(BinaryNumber)–与十进制相似,二进制数也遵循两个规则:仅有两个不同的数码,即0,1;进/借位规则为:逢二进一,借一当二。–将8位(bit)二进制数称为一个字节,字节是计算机存储信息的基本数据单位。这就要说到存储器的容量单位:1024B=1K1024KB=1M1024MB=1G4homebackfirstprevnextlast数字进制10-3•十六进制–是计算机系统中除二进制数之外使用较多的进制–二进制数在计算机系统中处理很方便,但当位数较多时,比较难记忆及书写,为了减小位数,通常将二进制数用十六进制表示–其遵循的两个规则为:其有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F等共十六个数码,其分别对应于十进制数的0~15;十六进制数的加减法的进/借位规则为:借一当十六,逢十六进一。5homebackfirstprevnextlast数字进制10-4•十六进制–在数制使用时,常将各种数制用简码来表示:如十进制数用D表示或省略;二进制用B来表示;十六进制数用H来表示–如:十制数123表示为:123D或者123;二进制数1011表示为:1011B;十六进制数3A4表示为:3A4H。6homebackfirstprevnextlast数字进制10-5十进制二进制十六进制000000100011200102300113401004501015601106701117十进制二进制十六进制810008910019101010A111011B121100C131101D141110E151111F1610000107homebackfirstprevnextlast数字进制10-6•二进制与十进制的转换–二进制数1101等于1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13。转化成十进制要从右到左用二进制的每个数去乘以2的相应次方,从2的0次方开始–这种做法称为“按权相加”法。8homebackfirstprevnextlast数字进制10-7•十进制转二进制–用2辗转相除至结果为1,将余数和最后的1从下向上倒序写,就是结果。例如302:302/2=151余0151/2=75余175/2=37余137/2=18余118/2=9余09/2=4余14/2=2余02/2=1余01/2=0余1故二进制为1001011109homebackfirstprevnextlast数字进制10-8•二进制与十六进制的转换–原则:每4位二进制对应1位16进制,高4位不足的前面补039H=00111001B4FH=01001111B11111B=00011111B=1FH10homebackfirstprevnextlast数字进制10-9•十进制与十六进制的转换–先除2取余,将十进制转换成二进制,再按照4位二进制对应1位16进制,转换成十六进制数•十六进制转换成十进制:–226H=2×162+2×161+6×160=550D11homebackfirstprevnextlast数字进制10-10•1101如果是二进制数字–表示1*23+1*22+0*21+1*20•1101如果是十进制数字–表示1*103+1*102+0*101+1*100•1101如果是十六进制数字–表示1*163+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-112homebackfirstprevnextlast练习1:二进制转十进制•接受用户输入的二进制数据,转换为十进制数字输出13homebackfirstprevnextlast练习1:二进制转十进制•接受用户输入的二进制数据,转换为十进制数字输出14homebackfirstprevnextlast练习2:•十进制转二进制–接受用户输入的二进制数据,转换为十进制数字输出15homebackfirstprevnextlast回文数判别•回文数是一种数字,其特点是正读倒读一样。如:98789,正读是98789,倒读也是98789•练习3:判断用户输入的数字是否为回文数–一种思路是将用户输入的数字当作字符串。然后将字符串的每个字符从头到尾依次取出来,然后从后到前再拼成一个新的字符串,如果两个字符串相同,则用户输入的数字为回文数。–另一种思路是把用户输入的数字当作数字,通过取余数得到各位数字,颠倒顺序后再重新组装为新的数字,如果两个数字相同,则用户输入的数字为回文数。16homebackfirstprevnextlast回文数判别•现在采取第二种办法,程序如右图所示:17homebackfirstprevnextlast作业•编程实现二进制和十六进制的互相转换•编程实现十进制和十六进制的互相转换18homebackfirstprevnextlast总结•数字进制转换–十进制–二进制–十六进制•回文数判别–非字符串分解方式