回 帖 发 新 帖 刷新版面

主题:54小诚快来做!!!!!!!!!!!!!!!

(n)16转(X)10会做吗?????????????????????????????[em12][em12][em12][em12][em12][em12]

回复列表 (共4个回复)

沙发

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$

板凳

我不会呀!!!!!!!!!

3 楼

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 楼

'此程序可实现任意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

我来回复

您尚未登录,请登录后再回复。点此登录或注册