主题:Qbasic的问题和进制转换的问题,高手来!
xuyifan
[专家分:40] 发布于 2008-02-01 21:39:00
1.16进制数6D表示(6+14)16还是别的什么?
2.输入:来自输入文件,输入文件的名称是t2in.txt,怎么做?(qbasic)
回复列表 (共7个回复)
沙发
强强 [专家分:4740] 发布于 2008-02-01 21:45:00
6D表示6*16+D
用OPEN语句
板凳
xuyifan [专家分:40] 发布于 2008-02-01 21:48:00
到底怎么OPEN,我貌似没学过
3 楼
Mato完整版 [专家分:1270] 发布于 2008-02-02 22:14:00
(6D)16表示6×16^1+D×16^0。
OPEN "t2.in" FOR INPUT AS #1
DO UNTIL EOF(1)
INPUT #1,<变量>
LOOP
CLOSE #1
这里的<变量>是存放读入的数据的变量。
4 楼
我爱QB [专家分:200] 发布于 2008-02-05 23:50:00
[em2]这个程序太差请见谅!
10进制转换成2进制数:
INPUT "n(n为整数部分例:12)、m(m为小数部分例:0.75,当m为0时请输入0否则无法完成转换)(m、n为正数)="; n, m
s = 1
DO
x = n MOD 2
s = s * 10 + x
n = n \ 2
LOOP UNTIL n = 0
s$ = STR$(s)
z = LEN(s$)
FOR i = 1 TO INT(z / 2)
a$ = MID$(s$, i, 1)
b$ = MID$(s$, z - i + 1, 1)
MID$(s$, i, 1) = b$
MID$(s$, z - i + 1, 1) = a$
NEXT i
q = LEN(s$) - 2
s$ = LEFT$(s$, q)
PRINT s$;
PRINT ".";
IF m = 0 THEN GOTO 20
DO
10 m = 2 * m
IF m - 1 < 0 THEN
PRINT "0";
GOTO 10
ELSEIF m - 1 = 0 THEN
PRINT "1";
m = 0
GOTO 20
ELSEIF m - 1 > 0 THEN
PRINT "1";
m = m - 1
GOTO 10
END IF
20 LOOP UNTIL m = 0
END
5 楼
我爱QB [专家分:200] 发布于 2008-02-05 23:54:00
楼主不好意思看错帖子了!
6 楼
我是大喊三 [专家分:3010] 发布于 2008-02-19 13:21:00
[quote]
[em2]这个程序太差请见谅!
10进制转换成2进制数:
INPUT "n(n为整数部分例:12)、m(m为小数部分例:0.75,当m为0时请输入0否则无法完成转换)(m、n为正数)="; n, m
s = 1
DO
x = n MOD 2
s = s * 10 + x
n = n \ 2
LOOP UNTIL n = 0
s$ = STR$(s)
z = LEN(s$)
FOR i = 1 TO INT(z / 2)
a$ = MID$(s$, i, 1)
b$ = MID$(s$, z - i + 1, 1)
MID$(s$, i, 1) = b$
MID$(s$, z - i + 1, 1) = a$
NEXT i
q = LEN(s$) - 2
s$ = LEFT$(s$, q)
PRINT s$;
PRINT ".";
IF m = 0 THEN GOTO 20
DO
10 m = 2 * m
IF m - 1 < 0 THEN
PRINT "0";
GOTO 10
ELSEIF m - 1 = 0 THEN
PRINT "1";
m = 0
GOTO 20
ELSEIF m - 1 > 0 THEN
PRINT "1";
m = m - 1
GOTO 10
END IF
20 LOOP UNTIL m = 0
END[/quote]
混合着老式BASIC和新式的写法,牛
7 楼
小小DAVID [专家分:300] 发布于 2009-11-21 19:47:00
好程序呀
我来回复