回 帖 发 新 帖 刷新版面

主题:[转帖]二进制转十进制

二进制转十进制,游戏也行!

回复列表 (共12个回复)

沙发

1 CLS
DIM t AS DOUBLE
INPUT n$, s
IF s < 2 OR s <> INT(s) OR s > 16 THEN 1
DATA 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
l = LEN(n$): DIM a(l): n$ = UCASE$(n$)
FOR i = 1 TO l
    m$ = MID$(n$, i, 1)
    f = 0
    FOR j = 1 TO s
        READ k$
        IF k$ = m$ THEN f = 1: EXIT FOR
    NEXT j: RESTORE
    IF f = 0 THEN PRINT "ERROR": END
    IF ASC(k$) > 57 THEN a(i) = ASC(k$) - 55 ELSE a(i) = VAL(k$)
NEXT i
r = 0: t = 0
FOR i = l TO 1 STEP -1
    t = t + a(i) * s ^ r: r = r + 1
NEXT i
2 INPUT p
IF p < 2 OR p <> INT(p) OR p > 16 THEN 2
DO UNTIL t = 0
  a$ = LTRIM$(STR$(t - INT(t / p) * p)) + a$
  t = INT(t / p)
LOOP
PRINT "("; n$; ")"; s; "= ( "; a$; " )"; p
END

板凳

抄袭大王的也太麻烦了。
看我的!
CLS
INPUT a$
l = LEN(a$)
FOR i = l TO 1 STEP -1
    r = i - 1
    m$ = MID$(a$, l + 1 - i, 1)
    IF m$ <> "0" AND m$ <> "1" THEN PRINT "Error!": END
    t = t + VAL(m$) * 2 ^ r
NEXT i
PRINT t
END

3 楼

[quote]抄袭大王的也太麻烦了。
看我的!
CLS
INPUT a$
l = LEN(a$)
FOR i = l TO 1 STEP -1
    r = i - 1
    m$ = MID$(a$, l + 1 - i, 1)
    IF m$ <> "0" AND m$ <> "1" THEN PRINT "Error!": END
    t = t + VAL(m$) * 2 ^ r
NEXT i
PRINT t
END

[/quote]
[em20][em13]
以后就叫你[size=2]“诽谤大王”[/size]

4 楼

看我的吧!我的才是最好简洁最完整的!
给我加30+20分吧!!!!!!!!!
input "a=";a$
Print "("; a$; ")2=(";
s = 0
If Left$(a$, 1) = "-" Then Print "-";: a$ = Mid$(a$, 2)
n = Len(a$)
For i = 1 To n
b = Val(Mid$(a$, i, 1))
s = s + b * 2 ^ (n - i)
Next i
Print s; ")10"
End

5 楼

CLS
INPUT a$
l = LEN(a$)
FOR i = l TO 1 STEP -1
    r = i - 1
    m$ = MID$(a$, l + 1 - i, 1)
    IF m$ <> "0" AND m$ <> "1" THEN PRINT "Error!": END
    t = t + VAL(m$) * 2 ^ r
NEXT i
PRINT t
END

6 楼

input "a=";a$
Print "("; a$; ")2=(";
s = 0
If Left$(a$, 1) = "-" Then Print "-";: a$ = Mid$(a$, 2)
n = Len(a$)
For i = 1 To n
b = Val(Mid$(a$, i, 1))
s = s + b * 2 ^ (n - i)
Next i
Print s; ")10"
End

7 楼

input "a=";a$
Print "("; a$; ")2=(";
s = 0
If Left$(a$, 1) = "-" Then Print "-";: a$ = Mid$(a$, 2)
n = Len(a$)
For i = 1 To n
b = Val(Mid$(a$, i, 1))
s = s + b * 2 ^ (n - i)
Next i
Print s; ")10"
End


8 楼

难道非得用字符串?
INPUT M
DO
  KI=M MOD 10
  K=K+KI*2^I
  I=I+1
  M=M\10
LOOP UNTIL M=0
PRINT K

9 楼

CLS
INPUT N$
FOR I = LEN(N$) TO 1 STEP -1
A = VAL(MID$(N$, LEN(N$) + 1 - I, 1))
X = X + A * 2 ^ (I - 1)
NEXT I
PRINT X
END

10 楼

CLS
INPUT N$
FOR I = LEN(N$) TO 1 STEP -1
A = VAL(MID$(N$, LEN(N$) + 1 - I, 1))
X = X + A * 2 ^ (I - 1)
NEXT I
PRINT X
END

我来回复

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