主题:高难度
蓝莎菲莹
[专家分:370] 发布于 2007-04-01 16:40:00
1.从键盘输入一个二进制小数,将这个小数化为十进制数!
回复列表 (共11个回复)
沙发
爱丽斯LING [专家分:560] 发布于 2007-04-01 16:51:00
hfjasdfhdfwekurh
板凳
黑白猪-- [专家分:420] 发布于 2007-04-01 16:51: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
3 楼
游戏之王 [专家分:540] 发布于 2007-04-04 17:37:00
CLS
INPUT A$, M, N
D = INSTR(A$, ".")
IF D = 0 THEN Z$ = A$ ELSE Z$ = LEFT$(A$, D - 1): X$ = MID$(A$, D + 1)
FOR I = 1 TO LEN(Z$)
B = ASC(MID$(Z$, I, 1))
IF B > 64 AND B < 71 THEN B = B - 55 ELSE B = B - 48
IF B >= M THEN PRINT "DATA ERROR!": END
S1 = S1 + B * M ^ (LEN(Z$) - I)
NEXT I
FOR I = 1 TO LEN(X$)
B = ASC(MID$(X$, I, 1))
IF B > 64 AND B < 71 THEN B = B - 55 ELSE B = B - 48
IF B >= M THEN PRINT "DATA ERROR!": END
S2 = S2 + B * M ^ (-I)
NEXT I
M$ = "0123456789ABCDEF"
DO UNTIL S1 = 0
ZZ$ = MID$(M$, S1 MOD N + 1, 1) + ZZ$
S1 = S1 \ N
LOOP
DO UNTIL LEN(XX$) = LEN(X$)
C = INT(S2 * N)
XX$ = XX$ + MID$(M$, C + 1, 1)
S2 = S2 * N - C
LOOP
IF ZZ$ <> "" THEN PRINT ZZ$; : GOTO 10
PRINT "0";
10 IF D > 0 THEN PRINT "."; XX$
END
4 楼
爱丽斯LING [专家分:560] 发布于 2007-04-04 17:58: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
5 楼
Lovely哆啦 [专家分:1360] 发布于 2007-04-04 17:58:00
CLS
INPUT A$, M, N
D = INSTR(A$, ".")
IF D = 0 THEN Z$ = A$ ELSE Z$ = LEFT$(A$, D - 1): X$ = MID$(A$, D + 1)
Q$ = Z$: GOSUB 10
Q$ = X$: GOSUB 10
M$ = "0123456789ABCDEF"
DO
ZZ$ = MID$(M$, S1 MOD N + 1, 1) + ZZ$
S1 = S1 \ N
LOOP UNTIL S1 = 0
DO UNTIL LEN(XX$) = LEN(X$)
C = INT(S2 * N)
XX$ = XX$ + MID$(M$, C + 1, 1)
S2 = S2 * N - C
LOOP
PRINT ZZ$; : IF D > 0 THEN PRINT "."; XX$
END
10 FOR I = 1 TO LEN(Q$)
B = ASC(MID$(Q$, I, 1))
IF B > 64 AND B < 71 THEN B = B - 55 ELSE B = B - 48
IF B >= M THEN PRINT "DATA ERROR!": END
IF Q$ = Z$ THEN S1 = S1 + B * M ^ (LEN(Q$) - I) ELSE S2 = S2 + B * M ^ (-I)
NEXT I
RETURN
6 楼
小精灵LS [专家分:580] 发布于 2007-04-04 17:59:00
CLS
INPUT A$
FOR I = LEN(A$) TO 1 STEP -1
A = VAL(MID$(A$, LEN(A$) + 1 - I, 1))
X = X + A * 2 ^ (I - 1)
NEXT I
PRINT X
END
7 楼
黑白猪-- [专家分:420] 发布于 2007-04-04 18:01:00
CLS
INPUT A$, M, N
D = INSTR(A$, ".")
IF D = 0 THEN Z$ = A$ ELSE Z$ = LEFT$(A$, D - 1): X$ = MID$(A$, D + 1)
FOR I = 1 TO LEN(Z$)
B = ASC(MID$(Z$, I, 1))
IF B > 64 AND B < 71 THEN B = B - 55 ELSE B = B - 48
IF B >= M THEN PRINT "DATA ERROR!": END
S1 = S1 + B * M ^ (LEN(Z$) - I)
NEXT I
FOR I = 1 TO LEN(X$)
B = ASC(MID$(X$, I, 1))
IF B > 64 AND B < 71 THEN B = B - 55 ELSE B = B - 48
IF B >= M THEN PRINT "DATA ERROR!": END
S2 = S2 + B * M ^ (-I)
NEXT I
M$ = "0123456789ABCDEF"
DO
ZZ$ = MID$(M$, S1 MOD N + 1, 1) + ZZ$
S1 = S1 \ N
LOOP UNTIL S1 = 0
DO UNTIL LEN(XX$) = LEN(X$)
c = INT(S2 * N)
XX$ = XX$ + MID$(M$, c + 1, 1)
S2 = S2 * N - c
LOOP
IF ZZ$ <> "" THEN PRINT ZZ$;
IF D > 0 THEN PRINT "."; XX$
END
[em5]
8 楼
随便你好 [专家分:530] 发布于 2007-04-04 18:03:00
CLS
INPUT A$, M, N
D = INSTR(A$, ".")
IF D = 0 THEN Z$ = A$ ELSE Z$ = LEFT$(A$, D - 1): X$ = MID$(A$, D + 1)
FOR I = 1 TO LEN(Z$)
B = ASC(MID$(Z$, I, 1))
IF B > 64 AND B < 71 THEN B = B - 55 ELSE B = B - 48
IF B >= M THEN PRINT "DATA ERROR!": END
S1 = S1 + B * M ^ (LEN(Z$) - I)
NEXT I
FOR I = 1 TO LEN(X$)
B = ASC(MID$(X$, I, 1))
IF B > 64 AND B < 71 THEN B = B - 55 ELSE B = B - 48
IF B >= M THEN PRINT "DATA ERROR!": END
S2 = S2 + B * M ^ (-I)
NEXT I
M$ = "0123456789ABCDEF"
DO
ZZ$ = MID$(M$, S1 MOD N + 1, 1) + ZZ$
S1 = S1 \ N
LOOP UNTIL S1 = 0
DO UNTIL LEN(XX$) = LEN(X$)
C = INT(S2 * N)
XX$ = XX$ + MID$(M$, C + 1, 1)
S2 = S2 * N - C
LOOP
PRINT ZZ$; : IF D > 0 THEN PRINT "."; XX$
END
9 楼
小精灵LS [专家分:580] 发布于 2007-04-11 18:05: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 楼
V2战警2 [专家分:390] 发布于 2007-07-26 18:06:00
CLS
INPUT A$, M, N
D = INSTR(A$, ".")
IF D = 0 THEN Z$ = A$ ELSE Z$ = LEFT$(A$, D - 1): X$ = MID$(A$, D + 1)
FOR I = 1 TO LEN(Z$)
B = ASC(MID$(Z$, I, 1))
IF B > 64 AND B < 71 THEN B = B - 55 ELSE B = B - 48
IF B >= M THEN PRINT "DATA ERROR!": END
S1 = S1 + B * M ^ (LEN(Z$) - I)
NEXT I
FOR I = 1 TO LEN(X$)
B = ASC(MID$(X$, I, 1))
IF B > 64 AND B < 71 THEN B = B - 55 ELSE B = B - 48
IF B >= M THEN PRINT "DATA ERROR!": END
S2 = S2 + B * M ^ (-I)
NEXT I
M$ = "0123456789ABCDEF"
DO UNTIL S1 = 0
ZZ$ = MID$(M$, S1 MOD N + 1, 1) + ZZ$
S1 = S1 \ N
LOOP
DO UNTIL LEN(XX$) = LEN(X$)
C = INT(S2 * N)
XX$ = XX$ + MID$(M$, C + 1, 1)
S2 = S2 * N - C
LOOP
IF ZZ$ <> "" THEN PRINT ZZ$; : GOTO 10
PRINT "0";
10 IF D > 0 THEN PRINT "."; XX$
END[/quote]
我来回复