程 序 源 代 码 |
|
|
| 数制转换 说明:本程序可以用于进行10进制数据与非10进制(2进制、8进制、16进制)数据之间的转换。首先按程序要求选择转换模式,再输入已知的数或要转换的数的进制制式。程序将自动显示你所需要的进制数据。如果输入非10进制数据有错误时,程序还会自动提示。输入的10进制数据可长达10位,二进制数据可长达100多位。输入的数据只限于正整数。 |
5 CLS : PRINT " PR020:数制转换": PRINT 10 PRINT "请选择转换模式:(1 OR 2)" 15 PRINT " 1: 10进制→非10进制" 20 PRINT " 2: 非10进制→10进制" 25 PRINT "(注: 中止输入请按Ctrl键+Pause键。)" 30 INPUT "选择: ", m 35 IF m <> 1 AND m <> 2 THEN 10 40 IF m = 1 THEN 110 45 INPUT "已知的数据为几进制:", n 46 IF n > 10 AND n <> 16 THEN PRINT "大于10的进制只用16进制!": GOTO 45 47 IF n = 16 THEN PRINT "如有必要输入字母,请用大写字母!" 50 INPUT "输入已知的数:", x$ 55 IF VAL(x$) <> INT(VAL(x$)) THEN PRINT "请输入整数!": GOTO 50 60 y = 0 65 FOR i = 1 TO LEN(x$) 70 v = VAL(MID$(x$, i, 1)): a = ASC(MID$(x$, i, 1)) 75 IF v >= n THEN PRINT "数据输入错误!": GOTO 50 80 IF v = 0 AND MID$(x$, i, 1) <> "0" THEN IF a > 70 OR a < 65 THEN PRINT "数据输入错误!": GOTO 50 85 IF a >= 65 AND a < 71 THEN v = a - 55 90 y = y + v * n ^ (LEN(x$) - i) 95 NEXT 100 PRINT y 105 GOTO 50 110 DIM y(255) 115 INPUT "输入要转换的数:", x$ 116 IF VAL(x$) <> INT(VAL(x$)) THEN PRINT "请输入整数!": GOTO 115 120 INPUT "要转换成几进制:", n 122 IF n > 10 AND n <> 16 THEN PRINT "大于10的进制1只有10进制!": GOTO 120 125 y = VAL(x$): i = 1 130 y(i) = y MOD n 140 IF y - (y MOD n) = 0 THEN 180 150 y = INT(y / n) 160 i = i + 1 170 GOTO 130 180 FOR k = i TO 1 STEP -1 185 IF n = 16 AND y(k) >= 10 THEN PRINT CHR$(y(k) + 55); : GOTO 200 190 PRINT y(k); 200 NEXT 205 PRINT 210 GOTO 115 220 END |
|
<下一个> |