
高中数学第一章算法初步全章第一章算法初步课件人教版必修31.3.3二进制.ppt
23页1.3.3 进位制,一般的数值计算,十进制,半斤=八两,十六进制,时间和角度,六十进制,电子计算机,二进制,问:什么是进位制?不同的进位制之间又有什么联系呢?,进位制:人们为了计数和运算的方便而约定的一种记数系统约定满二进一,就是二进制; 满十进一,就是十进制; 满十六进一,就是十六进制;满k进一”,就是k进制k进制的基数就是k二进制,八进制,十进制,十六进制,0,1,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F(分别对应1015),0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,8,9,问:什么是k进制的基数?,10,2,8,16,可使用数字符号的个数称为基数.基数都是大于1的整数.,注:为了区分不同的进位制,常在数字的右下脚标明基数.,如111001(2)表示二进制数,34(5)表示5进制数.,十进制数一般不标注基数.,(4)C7A16(16),问:十进制有何特点? 十进制数3721有何意义?,十进制数3721中的3表示3个千(103),7表示7个百(102),2表示2个十(101),1表示1个一(100),3721=3103+7102+2101+1100.,满十进一,每个数字都小于10,首位不为零,102中“10”即十进制的基数10,十进制数 3721=3103+7102+2101+1100.,1011(2),3421(5),=123+022+121+120,=353+452+251+150,C7A16(16)=,12164+7163+10162+1161+6160.,一般k进制数的整数,anan-1an-2a2a1a0(k),=ankn + an-1kn-1 + +a1k1 + a0k0,2)anan-1a1a0(k) (0ank,0an-1,a1,a0k),注:1)这是一个n+1位数.,anan-1an-2a2a1a0(k),=ankn + an-1kn-1 + +a1k1 + a0k0,3)第一个数字an不能等于0;,4)ankn + an-1kn-1 + +a1k1 + a0k0 得到的和是十进制数。
问:如何把k进制数转化为十进制数?,k进制数转化为十进制数,1)anan-1a1a0(k) =ankn+an-1kn-1+a1k1+a0k0 .,2) 按照十进制数的运算规则计算出结果.,C7A16(16)=,12164+7163+10162+1161+6160.,=817686,3421(5),=353+452+251+150,=486,1011(2),=123+022+121+120,=11,问:如何将十进制数转化为其它进制数?,例:把89化为二进制的数.,89=an2n+an-12n-1+a121+a020 .,89=64+16+8+1 =126+025+124+123+022+021+120 =1011001(2),89=442+1,44=222+0,22=112+0,11=52+1,5=22+1,2=12+0,1=02+1,89=64+16+8+1 =126+025+124+123+022+021+120 =1011001(2),=442+1, =(222+0)2+1 =(112+0)2+0)2+1 =(52+1)2+0)2+0)2+1 =(22+1)2+1)2+0) 2+0)2+1 =(12)+0)2+1)2+1)2+0) 2+0)2+1,=((02+1)2)+0)2+1)2+1)2+0) 2+0)2+1,可以用2连续去除89或所得商(一直到商为0为止),然后取余数 -除2取余法.,44 1,例:把89化为二进制的数.,除2取余法:,22 0,11 0,5 1,2 1,1 0,0 1,把算式中各步所得的余数从下到上排列,得到,89=1011001(2).,这种方法也可以推广为把十进制数化为k进制数的算法,称为除k取余法.,练习:把89化为五进制的数.,解:以5作为除数,相应的除法算式为:,17 4,3 2,0 3, 89=324(5).,问:你会把三进制数10221(3)化为二进制数吗?,解:第一步:先把三进制数化为十进制数: 10221(3)=134+033+232+231+130 =81+18+6+1=106.,第二步:再把十进制数化为二进制数:,106=1101010(2).,进位制的概念及表示方法; 各种进位制之间的相互转化.,anan-1a1a0(k) =ankn+an-1kn-1+a1k1+a0k0 .,=ankn + an-1kn-1 + +a1k1 + a0k0,问:怎样将k进制数转化为十进制数?,anan-1an-2a2a1a0(k),=ankn + an-1kn-1 + +a1k1 + a0k0,设ai 为右数第i位数 i=1,ai S=S+ai*k(i-1) i=i+1,循环体,a(k)=anan-1an-2a2a1a0(k),=ankn + an-1kn-1 + +a1k1 + a0k0,1:输入a,k,n 2:S=0,i=1 3:找到ai ,S=S+aiki-1,i=i+1 4:判断in是否成立,若是,则执行 第5步;否则,返回第三步。
5:输出S的值算法步骤:,k进制数 十进制数,是,否,把k进制数化为十进制数b.,INPUT “a,k,n=”;a,k,n S=0 i=1 t = a MOD 10 DO S=S+t*k(i-1) a=a10 t=a MOD10 i=i+1 LOOP UNTIL in PRINT S END,十进制数a转化为k进制数b,INPUT “a,k=”;a,k S=0 i=0 DO q=ak r=a MOD k S=S+r*10i i=i+1 a=q LOOP UNTIL q=0 PRINT S END,“除k 取余法”,例:韩信点兵 “今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”,n=2 DO r1=n MOD 3 r2= n MOD 5 r3=n MOD 7 n=n+1 LOOP UNTIL r1=2 AND r2=3 AND r3=2 PRINT n END,练习:李白买酒 “无事街上走,提壶去买酒遇店加一倍,见花喝一斗三遇店和花,喝光壶中酒”试问壶中原有多少酒?,。












