回 帖 发 新 帖 刷新版面

主题:Matodied再进来看看

输入任意一个k进制的数a(n位),转化为十进制的数并输出.

(例如
110011(2)
即k=2,a=110011,n=6)

Matodied,你试运行一下.
然后帮我详细解读一下.
30分…………
把你以前帮我解答的问题一起打分。
有吸引力吧?
呵呵,我知道你也不会在呼这些的。开玩笑的。

回复列表 (共5个回复)

沙发

CLS
INPUT k, a$
n = LEN(a$)
DIM c1$(16), c2(16)
DATA 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
FOR i = 1 TO 16
    READ c1$(i)
    IF c1$(i) <= "9" THEN c2(i) = ASC(c1$(i)) - 48 ELSE c2(i) = ASC(c1$(i)) - 55
NEXT i
s& = 0
FOR i = n - 1 TO 0 STEP -1
    t$ = MID$(a$, n - i, 1)
    FOR j = 0 TO 15
        IF c1$(j) = t$ THEN t = c2(j): EXIT FOR
    NEXT j
    s& = s& + t * k ^ i
NEXT i
PRINT s&
END

你怎么这么多问题?再说我回答了你的问题你也应该加分,怎么一点反应也没有啊!

板凳

你好厉害啊.

3 楼

跟你讲过了,我根本没有QQ。

有关进制转换的程序请见[url=http://www.programfan.com/club/post-230167.html]这里[/url]。

4 楼

你好,我所说的是高一数学必修3的例题的啊!高一的学生,这样做,你说晕不晕???
以下两个是我编的,不知道你感觉如何:
一,十进制化为二进制
dim a(100)
input "x=";x
print "(";x;")10="
if x<0 then print "-";:x=-x
n=0
10 s=int(x/2)
n=n+1
a(n)=x-2*s
x=s
if x<>0 then 10
for i=n to 1 step -1
print a(i)
next i
print ";2"
end

二、二进制化为十进制
input "R$=";R$
print "(";R$;")2=("
if left$(R$,1)="-" then print "-";:R$="mid$(R$,2)
M=len(R$)
S=0
for i=1 to M
N$=mid$(R$,i,1)
N=val(N$)
S=S+N*2^(M-i)
next i
print S;")10"
end

5 楼

其实不管几进制转几进制,都要以10进制来中转,即如果要把一个m进制数转为n进制数必须分2步:(1)m进制转10进制(2)10进制转n进制。
虽然有些进制的转换有快捷的转换方式(可以不用10进制中转),但大多数进制还是没有的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册