进制数之间的转换及应用(包含源程序

进制数之间的转换及应用(包含源程序

ID:30300681

大小:78.04 KB

页数:4页

时间:2018-12-28

进制数之间的转换及应用(包含源程序_第1页
进制数之间的转换及应用(包含源程序_第2页
进制数之间的转换及应用(包含源程序_第3页
进制数之间的转换及应用(包含源程序_第4页
资源描述:

《进制数之间的转换及应用(包含源程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、不同进制数之间的转换及应用在计算机领域中,有时需将不同进制之间进行转换,如十进制数转换成二进制数、八进制数和十六进制数等,以及进行逆转换。不同进制数之间转换的基本算法:1)十进制数(x)转换成任意进制数(n)的方法:将十进制数除以n进制反序取余。2)将任意进制数转化程成十进制数方法:按权展开。3)二进制数、八进制数、十六进制数之间的转换方法:利用三位二进制数表示一位八进制数,4位二进制数表示一位十六进制数的方法。1、不同进制数的转换:例1、将十进制数转换成任意进制数的(n<10)programjinzhi1;vara:array[1..50]ofinteg

2、er;n,t,x,y,I:integer;beginwrite(‘inputnumberx,y:’);read(x,y);t:=y;writeln;repeatI:I+1;A[I]:=ymodx;Y:=ydivx;Untily=0;Forn:=Idownto1doWrite(a[n]);Writeln;End.输入:2458输出:365如果超过十进制数,可以用字符A,B,C,D,E,F表示10—15的数,将余数在转换为字符类型进行处理。例2、将任意进制整数转换成十进制数。、programjinzhi2;constm=20;varstr1:string;st

3、r2:char;n,I,l,y,t:integer;x:longint;{在数字输入时,可能超过5位数,如,100010001}a:array[1..m]ofinteger;beginwriteln(‘inputnumberx,n’);readln(x,n);str(x,str1);l:=length(str1);forI:=1toldobeginstr2:=str[I,];a[I]:=ord(str2)-ord(‘0’);end;y:=1;t:=a[l];forI:=l-1downto1dobeginifa[I]>nthenbeginwriteln(‘e

4、rror’);exit;end;y:=y*n;t:=t+a[I]*y;end;writeln(x,’-----‘,t);end.当x=100110,n=2,输出:100110…381)将十进制小数转换为其他进制的数:将十进制小数乘以待转换的进制数正向取整的方法。程序自己实现(略)。2、数的进制应用。例1、用三进制数求解数学问题。用质量为1g,3g,9g,21g,81g的砝码称物体的质量,最大可称121g。如果砝码允许放在天平的两边,编程输出秤不同物体时砝码应该怎样安排?例如m=14g时,m+9+3+1=27,即天平一端放m=14的物体和9g,3g,1g的砝

5、码,另一端放27g的砝码。Programtianpin;Vara,b,c,d,e,m:integer;BeginForm:=1to121doFora:=-1to1doForb:=-1to1doForc:=-1to1doFord:=-1to1doFore:=-1to1doIfm:=a*81+b*27+c*9+d*3+ethenBeginWriteln(m,’=’,a*81,’+’,b*27,’+’,c*9,’+’,d*3,’+’,e);Readln;End;End.例*2、走路问题:小明每天上学要从街口A到街口B,求他从街口A到街口B的向前路(不后退)一共有

6、多少走法?应该怎样走?如下图:1567432AB图1Programzoulu;Constm=4;n=6;Vart,p,x,I,j,k,a:integer;BeginT:=1;P:=m+n;Forx:=1top-(m-1)doForI:=x+1top-(m-2)doForj:=I+1top-(m-3)doFork:=j+1top-(m-4)doBeginWrite('no:',t,'---');Fora:=1topdoIf(a=x)or(a=I)or(a=j)or(a=k)thenwrite(1:2)elsewrite(0:2);Writeln;T:=t+1

7、;End;Writeln('total=',t-1);End.例*3、将2^n个0和2^n个1排列成一圈。从任意一个位置开始,每次按逆时针的方向以长度为n+1的单位计数二进制数。要求给出一种排法,用上面的方法产生出2^(n+1)个不同的二进制数。如当n=2时,有2^2个0和2^2个1排列如图2所示。如果从a位置开始,逆时针方向取三个数000,然后再从b位置开始取三个数001,接着取010,……。可以得到8个不同的二进制数。10010110Programshengshu;Constmaxn=16;m=127;Typets=setof0..m;Varn:1..

8、maxn;A:array[1..m]ofinteger;S:ts;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。