用函数Oct()将十进制位数转换为八进制,用Hex()将十进制位数转换为十六进制,不过值得注意的是转换后数字型变为字符型。如果是一个变量我们可以用如下代码完成十进制向其他进制转换的目的。
dim ANumaslong
ANum=&O10′&O是八进制的表示符号ANum自行转换为8。
ANum=&HA′&H是十六进制的表示符号ANum自行转换为10。
如果我们有一个字符变量Astring为八进制的或十六进制的,用ANum=″&O″+Astring和ANum=″&H″+Astring能将它转换为十进制。
VB中我没有找到二进制的转换函数,用如下代码可以实现十进制到二进制的转换。
OptionExplicit
Private Function TenturnTwo(ByValvarNumAsLong)
Dim returnStringAsString,ModNumAsInteger
Do WhilevarNum>0
ModNum=varNumMod2
varNum=varNum\2
returnString=Trim(Str(ModNum))+returnString
Loop
TenturnTwo=returnString
End Function
Private Function TwoturnTen(ByValvarStringAsString)
DimSLenAsLong,I As Long,returnNumAsLong
SLen=Len(varString)
ForI=0ToSLen-1
returnNum=returnNum+Val(Mid(varString,I+1,1))*(2^(SLen-I-1))
Next
TwoturnTen=returnNum
End Function
dim ANumaslong
ANum=&O10′&O是八进制的表示符号ANum自行转换为8。
ANum=&HA′&H是十六进制的表示符号ANum自行转换为10。
如果我们有一个字符变量Astring为八进制的或十六进制的,用ANum=″&O″+Astring和ANum=″&H″+Astring能将它转换为十进制。
VB中我没有找到二进制的转换函数,用如下代码可以实现十进制到二进制的转换。
OptionExplicit
Private Function TenturnTwo(ByValvarNumAsLong)
Dim returnStringAsString,ModNumAsInteger
Do WhilevarNum>0
ModNum=varNumMod2
varNum=varNum\2
returnString=Trim(Str(ModNum))+returnString
Loop
TenturnTwo=returnString
End Function
Private Function TwoturnTen(ByValvarStringAsString)
DimSLenAsLong,I As Long,returnNumAsLong
SLen=Len(varString)
ForI=0ToSLen-1
returnNum=returnNum+Val(Mid(varString,I+1,1))*(2^(SLen-I-1))
Next
TwoturnTen=returnNum
End Function
i=-590
debug.print hex(i)
我想补充一个问题
那就是我知道可十六进制的值,例如“FFAA”,我怎么用程序得到十进制呢?
我问的问题好象太白痴了点,我的逻辑设计这门根本就没学,哎!
人总是要成长的,让我们大家一起在CSDN里成长为新一代的高手吧!
想吵架的人闪一边去,我们只来学习,不学习的请安静!!!
daryl715(海军少校) 说的
“如果我们有一个字符变量Astring为八进制的或十六进制的,用ANum=″&O″+Astring和ANum=″&H″+Astring能将它转换为十进制”对不起,浪费大家的时间了,我马上用vb6试试
人总是要成长的,让我们大家一起在CSDN里成长为新一代的高手吧!
想吵架的人闪一边去,我们只来学习,不学习的请安静!!!