主题:[转帖]二进制转十进制
YF99_66
[专家分:30] 发布于 2007-08-01 18:43:00
二进制转十进制,游戏也行!
回复列表 (共12个回复)
沙发
wzc1996 [专家分:1680] 发布于 2007-08-01 20:23:00
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
板凳
Matodied [专家分:7560] 发布于 2007-08-01 21:01:00
抄袭大王的也太麻烦了。
看我的!
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 楼
wzc1996 [专家分:1680] 发布于 2007-08-01 21:24:00
[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 楼
yaoyusheng [专家分:460] 发布于 2007-08-01 23:56:00
看我的吧!我的才是最好简洁最完整的!
给我加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 楼
yfyf [专家分:440] 发布于 2007-08-02 08:25:00
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 楼
yfyf [专家分:440] 发布于 2007-08-02 08:30:00
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 楼
yfyf [专家分:440] 发布于 2007-08-02 09:42:00
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 楼
小小傻瓜 [专家分:150] 发布于 2007-08-08 12:25:00
难道非得用字符串?
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 楼
小精灵1号 [专家分:1040] 发布于 2007-08-09 10:40:00
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 楼
我的电脑 [专家分:990] 发布于 2007-08-09 10:44:00
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
我来回复