十进制,八进制,十六进制,二进制相互转换大全

摘要:
转移自:http://blog.programfan.com/article.asp?id=11903'目的:将十进制转换为二进制'输入:Dec(十进制数)'输入数据类型:Long'输出:Dec_to_BIN(二进制数)'输出数据类型:String'最大输入数为2147483647,最大输出数为1111111111111111111(31 1)PublicFunctionD

轉自:http://blog.programfan.com/article.asp?id=11903

 

' 用途:将十进制转化为二进制
'
 输入:Dec(十进制数)
'
 输入数据类型:Long
'
 输出:DEC_to_BIN(二进制数)
'
 输出数据类型:String
'
 输入的最大数为2147483647,输出最大数为1111111111111111111111111111111(31个1)
Public Function DEC_to_BIN(Dec As LongAs String
    DEC_to_BIN 
= ""
    
Do While Dec > 0
        DEC_to_BIN 
= Dec Mod 2 & DEC_to_BIN
        Dec 
= Dec \ 2

    
Loop
End Function

' 用途:将二进制转化为十进制
'
 输入:Bin(二进制数)
'
 输入数据类型:String
'
 输出:BIN_to_DEC(十进制数)
'
 输出数据类型:Long
'
 输入的最大数为1111111111111111111111111111111(31个1),输出最大数为2147483647
Public Function BIN_to_DEC(ByVal Bin As StringAs Long
    
Dim i As Long
    
For i = 1 To Len(Bin)
        BIN_to_DEC 
= BIN_to_DEC * 2 + Val(Mid(Bin, i, 1
))
    
Next
 i
End Function


' 用途:将十六进制转化为二进制
'
 输入:Hex(十六进制数)
'
 输入数据类型:String
'
 输出:HEX_to_BIN(二进制数)
'
 输出数据类型:String
'
 输入的最大数为2147483647个字符
Public Function HEX_to_BIN(ByVal Hex As StringAs String
    
Dim i As Long
    
Dim B As String
    
    
Hex = UCase(Hex)
    
For i = 1 To Len(Hex
)
        
Select Case Mid(Hex, i, 1
)
            
Case "0": B = B & "0000"

            
Case "1": B = B & "0001"
            
Case "2": B = B & "0010"
            
Case "3": B = B & "0011"
            
Case "4": B = B & "0100"
            
Case "5": B = B & "0101"
            
Case "6": B = B & "0110"
            
Case "7": B = B & "0111"
            
Case "8": B = B & "1000"
            
Case "9": B = B & "1001"
            
Case "A": B = B & "1010"
            
Case "B": B = B & "1011"
            
Case "C": B = B & "1100"
            
Case "D": B = B & "1101"
            
Case "E": B = B & "1110"
            
Case "F": B = B & "1111"
        
End Select
    
Next i
    
While Left(B, 1= "0"

        B 
= Right(B, Len(B) - 1)
    
Wend

    HEX_to_BIN 
= B
End Function


' 用途:将二进制转化为十六进制
'
 输入:Bin(二进制数)
'
 输入数据类型:String
'
 输出:BIN_to_HEX(十六进制数)
'
 输出数据类型:String
'
 输入的最大数为2147483647个字符
Public Function BIN_to_HEX(ByVal Bin As StringAs 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


' 用途:将十六进制转化为十进制
'
 输入:Hex(十六进制数)
'
 输入数据类型:String
'
 输出:HEX_to_DEC(十进制数)
'
 输出数据类型:Long
'
 输入的最大数为7FFFFFFF,输出的最大数为2147483647
Public Function HEX_to_DEC(ByVal Hex As StringAs Long
    
Dim i As Long
    
Dim B As Long
    
    
Hex = UCase(Hex)
    
For i = 1 To Len(Hex
)
        
Select Case Mid(HexLen(Hex- i + 11
)
            
Case "0": B = B + 16 ^ (i - 1* 0

            
Case "1": B = B + 16 ^ (i - 1* 1
            
Case "2": B = B + 16 ^ (i - 1* 2
            
Case "3": B = B + 16 ^ (i - 1* 3
            
Case "4": B = B + 16 ^ (i - 1* 4
            
Case "5": B = B + 16 ^ (i - 1* 5
            
Case "6": B = B + 16 ^ (i - 1* 6
            
Case "7": B = B + 16 ^ (i - 1* 7
            
Case "8": B = B + 16 ^ (i - 1* 8
            
Case "9": B = B + 16 ^ (i - 1* 9
            
Case "A": B = B + 16 ^ (i - 1* 10
            
Case "B": B = B + 16 ^ (i - 1* 11
            
Case "C": B = B + 16 ^ (i - 1* 12
            
Case "D": B = B + 16 ^ (i - 1* 13
            
Case "E": B = B + 16 ^ (i - 1* 14
            
Case "F": B = B + 16 ^ (i - 1* 15
        
End Select
    
Next i
    HEX_to_DEC 
=
 B
End Function

' 用途:将十进制转化为十六进制
'
 输入:Dec(十进制数)
'
 输入数据类型:Long
'
 输出:DEC_to_HEX(十六进制数)
'
 输出数据类型:String
'
 输入的最大数为2147483647,输出最大数为7FFFFFFF
Public Function DEC_to_HEX(Dec As LongAs String
    
Dim a As String
    DEC_to_HEX 
= ""
    
Do While Dec > 0
        a 
= CStr(Dec Mod 16)
        
Select Case
 a
            
Case "10": a = "A"

            
Case "11": a = "B"
            
Case "12": a = "C"
            
Case "13": a = "D"
            
Case "14": a = "E"
            
Case "15": a = "F"
        
End Select
        DEC_to_HEX 
= a & DEC_to_HEX
        Dec 
= Dec \ 16

    
Loop
End Function

' 用途:将十进制转化为八进制
'
 输入:Dec(十进制数)
'
 输入数据类型:Long
'
 输出:DEC_to_OCT(八进制数)
'
 输出数据类型:String
'
 输入的最大数为2147483647,输出最大数为17777777777
Public Function DEC_to_OCT(Dec As LongAs String
    DEC_to_OCT 
= ""
    
Do While Dec > 0
        DEC_to_OCT 
= Dec Mod 8 & DEC_to_OCT
        Dec 
= Dec \ 8

    
Loop
End Function

' 用途:将八进制转化为十进制
'
 输入:Oct(八进制数)
'
 输入数据类型:String
'
 输出:OCT_to_DEC(十进制数)
'
 输出数据类型:Long
'
 输入的最大数为17777777777,输出的最大数为2147483647
Public Function OCT_to_DEC(ByVal Oct As StringAs Long
    
Dim i As Long
    
Dim B As Long
    
    
For i = 1 To Len(Oct)
        
Select Case Mid(OctLen(Oct- i + 11
)
            
Case "0": B = B + 8 ^ (i - 1* 0

            
Case "1": B = B + 8 ^ (i - 1* 1
            
Case "2": B = B + 8 ^ (i - 1* 2
            
Case "3": B = B + 8 ^ (i - 1* 3
            
Case "4": B = B + 8 ^ (i - 1* 4
            
Case "5": B = B + 8 ^ (i - 1* 5
            
Case "6": B = B + 8 ^ (i - 1* 6
            
Case "7": B = B + 8 ^ (i - 1* 7
        
End Select
    
Next i
    OCT_to_DEC 
=
 B
End Function


' 用途:将二进制转化为八进制
'
 输入:Bin(二进制数)
'
 输入数据类型:String
'
 输出:BIN_to_OCT(八进制数)
'
 输出数据类型:String
'
 输入的最大数为2147483647个字符
Public Function BIN_to_OCT(ByVal Bin As StringAs String
    
Dim i As Long
    
Dim H As String
    
If Len(Bin) Mod 3 <> 0 Then
        Bin 
= String(3 - Len(Bin) Mod 3"0"& Bin
    
End If

    
    
For i = 1 To Len(Bin) Step 3
        
Select Case Mid(Bin, i, 3)
            
Case "000": H = H & "0"

            
Case "001": H = H & "1"
            
Case "010": H = H & "2"
            
Case "011": H = H & "3"
            
Case "100": H = H & "4"
            
Case "101": H = H & "5"
            
Case "110": H = H & "6"
            
Case "111": H = H & "7"
        
End Select
    
Next i
    
While Left(H, 1= "0"

        H 
= Right(H, Len(H) - 1)
    
Wend

    BIN_to_OCT 
= H
End Function


' 用途:将八进制转化为二进制
'
 输入:Oct(八进制数)
'
 输入数据类型:String
'
 输出:OCT_to_BIN(二进制数)
'
 输出数据类型:String
'
 输入的最大数为2147483647个字符
Public Function OCT_to_BIN(ByVal Oct As StringAs String
    
Dim i As Long
    
Dim B As String
    
    
For i = 1 To Len(Oct)
        
Select Case Mid(Oct, i, 1
)
            
Case "0": B = B & "000"

            
Case "1": B = B & "001"
            
Case "2": B = B & "010"
            
Case "3": B = B & "011"
            
Case "4": B = B & "100"
            
Case "5": B = B & "101"
            
Case "6": B = B & "110"
            
Case "7": B = B & "111"
        
End Select
    
Next i
    
While Left(B, 1= "0"

        B 
= Right(B, Len(B) - 1)
    
Wend

    OCT_to_BIN 
= B
End Function


' 用途:将八进制转化为十六进制
'
 输入:Oct(八进制数)
'
 输入数据类型:String
'
 输出:OCT_to_HEX(十六进制数)
'
 输出数据类型:String
'
 输入的最大数为2147483647个字符
Public Function OCT_to_HEX(ByVal Oct As StringAs String
    
Dim Bin As String
    Bin 
= OCT_to_BIN(Oct)
    OCT_to_HEX 
=
 BIN_to_HEX(Bin)
End Function


' 用途:将十六进制转化为八进制
'
 输入:Hex(十六进制数)
'
 输入数据类型:String
'
 输出:HEX_to_OCT(八进制数)
'
 输出数据类型:String
'
 输入的最大数为2147483647个字符
Public Function HEX_to_OCT(ByVal Hex As StringAs String
    
Dim Bin As String
    
Hex = UCase(Hex)
    Bin 
= HEX_to_BIN(Hex
)
    HEX_to_OCT 
=
 BIN_to_OCT(Bin)
End Function



'VB自带函数:
'
十进制转八进制:Oct(num)
'
十六进制转八进制:oct("&H" & num)
'
十进制转十六进制:hex(num)
'
八进制转十六进制:hex("&O" & num)

'十六进制转换为十进制
Dim str As String                     
str 
=
 Text2.Text
Text10.Text 
= CLng("&H" &
 str)


免责声明:文章转载自《十进制,八进制,十六进制,二进制相互转换大全》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python3下利用JsonPath解析数据python冲刺(4)切片 等下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JS原生请求的方法XHR对象

XMLHttpRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信。 最早,微软在IE 5引进了这个接口。因为它太有用,其他浏览器也模仿部署了,ajax操作因此得以诞生。 但是,这个接口一直没有标准化,每家浏览器的实现或多或少有点不同。HTML 5的概念形成后,W3C开始考虑标准化这个接口。2008年2月,就提出了XMLHtt...

android SQLite使用SQLiteOpenHelper类对数据库进行操作

一、 SQLite介绍SQLite是android内置的一个很小的关系型数据库。SQLite的官网是http://www.sqlite.org/,可以去下载一些文档或相关信息。博客中有一篇有稍微详细一点的介绍,大家可以去看一下。二、 SQLiteOpenHelper的使用方法SQLiteOpenHelper是一个辅助类来管理数据库的创建和版本。可以通过继承...

Java基础知识15commonslang3 第3方开源库的具体使用01(StringUtils、RandomUtils类、RandomStringUtils类)

1.commons-lang3 概述 apache提供的众多commons工具包,号称Java第二API,而common里面lang3包更是被我们使用得最多的。因此本文主要详细讲解lang3包里面几乎每个类的使用,希望以后大家使用此工具包,写出优雅的代码。 maven依赖: <dependency> <groupId>org...

Simulink仿真入门到精通(十八) TLC语言

TLC(Target Language Compiler)是一种为转换为目标语言而存在的额解释性语言,其目的就是将模型中编译出来的rtw文件转换为目标代码(C/C++等)。与M语言类似,既可以写成脚本文件,也能够作为函数存在,都是解释性语言,更相似的是它们都提供具有强大功能的内建函数库。 18.1 TLC的作用 支持模型针对通用或特定目标硬件的代码生成功...

hive基础1

Hive基础 1、介绍 Hive是OLAP(online analyze process,在线分析处理)。通常称为数据仓库,简称数仓。内置很多分析函数,可进行海量数据的在线分析处理。hive构建在hadoop之上,使用hdfs作为进行存储,计算过程采用的是Mapreduce完成,本质上hive是对hadoop的mr的封装,通过原始的mr方式进行数据处理与分...

ExecuteReader: Connection 属性尚未初始化。错误解决

读取student表中的数据打印到屏幕,代码 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 string sqlc = @"server=.\sqlexpress;database=MyDataBase1...