- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3讲 数组及其应用
数制转换:编程输入十进制N(N:-32767~32767),请输出它对应的二 进制、八进制、十六进制数。例如: INPUT N(-32767~32767):222 222 TURN INTO 2 222 TURN INTO 8:336 222 TURN INTO 16:DE [解]十进制数转化为某进制数的转换方法,如下图示: 除x逆序取余法 十进制数 x进制数(x=2,8,16等) 例中n=222(十进制数),转换成x进制数的过程如下图示: (1)十进制数→二进制数 (2)十进制数→八进制数 (3)十进制数→十六进制数 x=2 222 被除数(最大商) x=8 222 6 x=16 222 E … (14)10 2 111 0 低位 8 27 3 16 13 D … (13)10 2 50 1 逆 8 3 3 0 2 25 0 余 序 0 2 12 0 数 取 2 6 0 余 2 3 1 数 2 1 1 高位 0 (最大商为0时停止) 将每次所得的余数由下至上排列(逆序取余数),即有: (222)10 转换成二进制数得到:1100010 (222)10 转换成八进制数得到:336 (222)10 转换成十六进制数得到:13、14 这时得到的逆序余数串(在数组B[1]、B[2]、……、B[k]中)的每位数均为十进制数。程序中利用字符串A来计算x进制数的位数(即COPY(A,B[i]+1,1)),见下表: Program jj; var N,k:integer; B:array[1..1000] of integer; Procedure chg10(N,x:integer); {将十进制数N转换成x进制数} Begin k:=0; {转换后的x进制数位的长度} while N0 do {N不为0时} begin B[k]:=N mod x; {除以x取余数} N:=N Div x; {取最大商N} k:=k+1; {x进制数位加1} end; end;{chg10} Procedure Sput(N,x:integer);{进制数输出} VAR i:integer; A:string; Begin A:=0123456789ABCDEF; {表示x进制数的位数串} write(N:6, Turn into ,x:2,:); for i:=k-1 downto 0 do write(copy(A,B[i]+1,1));{逆序输出x进制数} writeln; end; {Sput} begin {MAIN} write(Input N(-32767 to 32767):);readln(N); if (N=-32767)or(N32767) then begin writeln(Input error!);halt;end; chg10(N,2);Sput(N,2); {十进制数转换成2进制数,并输出} chg10(N,8);Sput(N,8); {十进制数转换成8进制数,并输出} chg10(N,16);Sput(N,16); {十进制数转换成16进制数,并输出} var num,t:array[1..100] of integer; n,i,j,sum,tem:integer; begin readln(n); for i:=1 to n do read(t[i]); for i:=1 to n do num[i]:=i;
文档评论(0)