首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

请问:二进制转十六进制有关问题

2012-01-28 
请教:二进制转十六进制问题用途:将二进制转化为十六进制输入:Bin(二进制数)输入数据类型:String输出:BIN_t

请教:二进制转十六进制问题
'   用途:将二进制转化为十六进制
'   输入:Bin(二进制数)
'   输入数据类型:String
'   输出:BIN_to_HEX(十六进制数)
'   输出数据类型:String
'   输入的最大数为2147483647个字符
Public   Function   BIN_to_HEX(ByVal   Bin   As   String)   As   String
        Dim   i   As   Long
        Dim   H   As   String
        If   Len(Bin)   Mod   4   <>   0   Then
                Bin   =   String(4   -   Len(Bin)   Mod   4,   "0 ")   &   Bin
        End   If
       
        For   i   =   1   To   Len(Bin)   Step   4
                Select   Case   Mid(Bin,   i,   4)
                        Case   "0000 ":   H   =   H   &   "0 "
                        Case   "0001 ":   H   =   H   &   "1 "
                        Case   "0010 ":   H   =   H   &   "2 "
                        Case   "0011 ":   H   =   H   &   "3 "
                        Case   "0100 ":   H   =   H   &   "4 "
                        Case   "0101 ":   H   =   H   &   "5 "
                        Case   "0110 ":   H   =   H   &   "6 "
                        Case   "0111 ":   H   =   H   &   "7 "
                        Case   "1000 ":   H   =   H   &   "8 "
                        Case   "1001 ":   H   =   H   &   "9 "
                        Case   "1010 ":   H   =   H   &   "A "
                        Case   "1011 ":   H   =   H   &   "B "
                        Case   "1100 ":   H   =   H   &   "C "
                        Case   "1101 ":   H   =   H   &   "D "
                        Case   "1110 ":   H   =   H   &   "E "


                        Case   "1111 ":   H   =   H   &   "F "
                End   Select
        Next   i
        While   Left(H,   1)   =   "0 "
                H   =   Right(H,   Len(H)   -   1)
        Wend
        BIN_to_HEX   =   H
END   Function

'我的问题是传入00000000(8个0)进来计算。结果为空。
'请问是什么问题呢??

或者VB中二进制转十六进制有更好的办法吗?



[解决办法]
While Left(H, 1) = "0 "
H = Right(H, Len(H) - 1)
Wend
把这句删掉就OK了
[解决办法]
我的问题是传入00000000(8个0)进来计算。结果为空。
'请问是什么问题呢?? H是00的缘故


While Left(H, 1) = "0 "
H = Right(H, Len(H) - 1)
Wend

返回就是 " "

为了防止 " "出现,你在最后增加一个

While Left(H, 1) = "0 "
H = Right(H, Len(H) - 1)
Wend
IF H = " " THEN H = "0 "

热点排行