第1个回答 2009-04-21
十进制转换成二进制:
Dim d1 as Integer, x1 as Integer, l1 as Integer
Dim i as integer
Dim s1 as String, s2 as String
s1 = ""
d1=1234
Do
x1 = d1 Mod 2
s1 = s1 + ChrB$(x1 + 48)
d1 = d1 \ 2
If d1 = 0 Then Exit Do
Loop
l1 = Len(s1)
For i = 1 To l1
s2 = s2 + Mid$(s1, l1 - i + 1, 1)
Next i
十进制转换八进制与此类似,将其中的2改成8即可。
十进制转换成十六进制:
s1 = ""
d1 =1234
Do
x1 = d1 Mod 16
If x1 < 10 Then
s1 = s1 + ChrB$(x1 + 48)
Else
s1 = s1 + ChrB$(x1 + 55)
End If
d1 = d1 \ 16
If d1 = 0 Then Exit Do
Loop
l1 = Len(s1)
For i = 1 To l1
s2 = s2 + Mid$(s1, l1 - i + 1, 1)
Next i
二进制转换成十进制:
Dim h1 as String, s1 as String
Dim l1 as Integer, i as Integer, t as Integer, d1 as Integer
h1=“11010111”
L1 = Len(h1)
For i = 1 To L1
s1 = Mid$(h1, i, 1)
t = Asc(s1) - 48
d1 = d1 + t * 2 ^ (L1 - i)
Next i
八进制与此类似。
十六进制转换成十进制:
p1=“ABE3”
L1 = Len(p1)
For i = 1 To L1
s1 = Mid$(p1, i, 1)
If s1 >= "0" And s1 <= "9" Then
t = Asc(s1) - 48
ElseIf s1 >= "A" And s1 <= "F" Then
t = Asc(s1) - 55
ElseIf s1 >= "a" And s1 <= "f" Then
t = Asc(s1) - 87
End If
d1 = d1 + t * 16 ^ (L1 - i)
Next i
第2个回答 2009-04-21
八进制转换为十进制,以下为例子,其他自己思考可以
main()
{ char *p,s[6];int n;
p=s;
gets(p);
n=0;
while(*(p)!='\0')
{n=n*8+*p-'0';
p++;}
printf("%d",n);
}
补充:汗!这个例子是进制转换,其他的可以自己推到。。。是在没时间写太多,不懂的话,晚上我回去了在百度上留言好了。