主题:54小诚快来做!!!!!!!!!!!!!!!
科比*布莱恩特
[专家分:40] 发布于 2008-04-29 17:13:00
(n)16转(X)10会做吗?????????????????????????????[em12][em12][em12][em12][em12][em12]
回复列表 (共4个回复)
沙发
54小诚 [专家分:90] 发布于 2008-05-02 11:33:00
cls
input a
do
a=a/10
c=c+1
if fix(a)=0 then exit do
loop
dim a(c)
for j=0 to c-1
a(j)=a mod 10
a(j)=a(j)*16^j
a=(a-a(j))/10
next j
for j=0 to c-1
e$=e$+ltrim$(str$(a(j))
next j
print e$
板凳
1234qw [专家分:30] 发布于 2008-05-10 09:37:00
我不会呀!!!!!!!!!
3 楼
世界第一 [专家分:210] 发布于 2008-05-12 12:58:00
cls
input n
c=-1
while n>0
c=c+1
x=x+(n mod 10)*16^c
n=n\10
wend
print x
4 楼
flyinggoon [专家分:110] 发布于 2008-05-14 10:58:00
'此程序可实现任意N进制转M进制(2=<N,M<36)
CLS : flag$ = "+": INPUT a$, n, m, x: a = INSTR(a$, ".")
'格式输入校验部分略
IF a <> 0 THEN
a1$ = MID$(a$, 1, a - 1): a2$ = MID$(a$, a + 1, LEN(a$) - a + 1)
ELSE
a1$ = a$: a2$ = "0"
END IF
'以上是分解整数和小数部分
IF MID$(a1$, 1, 1) = "-" THEN a1$ = MID$(a1$, 2, LEN(a1$) - 1): flag$ = "-"
'该语句判断正负号
ba1 = 0: k = 0
FOR i = LEN(a1$) TO 1 STEP -1
c$ = MID$(a1$, i, 1)
IF c$ >= "A" AND c$ <= "Z" THEN c = ASC(c$) - 55 ELSE c = ASC(c$) - 48
ba1 = ba1 + c * n ^ k: k = k + 1
NEXT i: btemp = ba1: btemp$ = ""
'以上N进制转10进制(不好意思,我不会N一下子转成M,只能曲线救国)
DO
bmd = btemp MOD m
IF bmd < 10 THEN m$ = CHR$(bmd + 48) ELSE m$ = CHR$(bmd + 55)
btemp = btemp \ m
btemp$ = m$ + btemp$
LOOP UNTIL btemp = 0
'以上10转M。整数部分处理完毕。下面开始处理小数部分
ba2 = 0: k = 0
FOR i = 1 TO LEN(a2$)
c$ = MID$(a2$, i, 1)
IF c$ >= "A" AND c$ <= "Z" THEN c = ASC(c$) - 55 ELSE c = ASC(c$) - 48
k = k + 1: ba2 = ba2 + c * n ^ (-k)
NEXT i: btemp1$ = "": bbb = ba2
'以上是小数部分自N进制转成10进制
FOR i = 1 TO x
c = ba2 * m: cin = INT(c): ba2 = c - cin
IF cin < 10 THEN cin$ = CHR$(cin + 48) ELSE cin$ = CHR$(cin + 55)
btemp1$ = btemp1$ + cin$
NEXT i
'以上是小数部分自10进转成M进制(怕麻烦所以没考虑四舍五入,仅硬生生地保留了X位小数)
PRINT a$; "=";
IF btemp1$ <> "" THEN PRINT btemp$ + "." + btemp1$ ELSE PRINT btemp$
END
我来回复