pascal语言中怎样把n进制数转换成十进制数

要快... 要快 展开
 我来答
函淳7
2008-06-06 · 超过21用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:57.8万
展开全部
我提供代码如下
===============================================================
program nto10;
const
maxn=10000;
var
a:array[1..maxn]of integer;
flag:boolean;
i,j,k,n,num2:longint;
s,num1:string;
begin
s:='0123456789abcdefghijklmnopqrstuvwxyz';
readln(n);
readln(num1);

for i:=1 to length(num1) do
begin
flag:=false;
for j:=1 to n do
begin
if num1[i]=s[j]
then begin
a[i]:=j-1;
flag:=true;
end;
end;
if flag=false
then begin
writeln('sorry,can''t compute it');
halt;
end;
end;

for i:=1 to length(num1)-1 do
begin
num2:=(num2+a[i])*n;
end;
num2:=num2+a[length(num1)];

writeln(num2);
end.===============================================================
希望对你有所帮助
n进制转10进制的基本方法便是
每一位 乘 位数的n-1次方
举个例子:
当n=2 num1=1001
转换便是:
num2=1*(2^3)+0*(2^2)+0*(2^1)+1*(2^0)=9
自学锌a3
2016-04-18 · 超过60用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:105万
展开全部
你建立一个指针,从高位向低位扫描,每扫描一个数就乘以N
比如又一个N位数是
1234
你要转换为十进制数
过程是
指针→1 结果→1
指针→2 结果→1*n+2=a1
指针→3 结果→a1*n+3=a2
指针→4 结果→a2*n+4=a3
最后转化的结果就是a3
值得注意的是,十进制以上的数需要利用ASCII码来处理9以上的数字
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
喜扬扬790
2008-06-08 · TA获得超过495个赞
知道答主
回答量:344
采纳率:0%
帮助的人:0
展开全部
解释一下:输入的是n进制的数m(这里默认n<10),输出是ans。

var
ans,n,m,x,i,j:longint;

begin
readln(n,m); //输入
j:=1;
ans:=m mod 10;
m:=m div 10;
while m<>0 do
begin
j:=j*n;
x:=m mod 10;
ans:=ans+(x*j);
m:=m div 10;
end;
writeln(ans);
end.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式