模块包含了下面的各种转换:

二进制转十进制
二进制转化为八进制
二进制转化为十六进制

八进制转化为十进制
八进制转化为二进制
八进制转化为十六进制

十进制转二进制
十进制转化为八进制
十进制转化为十六进制

十六进制转化为二进制
十六进制转化为八进制
十六进制转化为十进制

16进制转ASC
10进制长整数转4位16进制字符串
10进制长整数转2位16进制字符串
ASCII字符串转16进制字符串
反16进制数转10进制数,共8位
反16进制数转10进制数,共6位
反16进制数转10进制数,共4位
10进制数转反16进制数,共8位
0进制数转反16进制数,共6位
10进制数转反16进制数,共4位
记录集转二进制流
ASCII码转二进制流
二进制流转ASCII码

代码如下:

'二进制转十进制
Public Function B2D(vBStr As String) As Long
Dim vLen As Integer '串长
Dim vDec As Long '结果
Dim vG As Long '权值
Dim vI As Long '位数
Dim vTmp As String '临时串
Dim vN As Long '中间值

vLen = Len(vBStr)

vG = 1 '初始权值
vDec = 0 '结果初值
B2D = vDec '返回初值

For vI = vLen To 1 Step -1
vTmp = Mid(vBStr, vI, 1) '取出当前位
vN = Val(vTmp)

If vN < 2 Then '判断是不是合法二进制串,貌似不严谨,E文和符号会被判0而合法
vDec = vDec + vG * vN '得到中间结果
vG = vG + vG
Else
vDec = 0
'msgbox "不是有效的二进制数",vbokonly
Exit Function
End If
Next vI

B2D = vDec
End Function

'十进制转二进制
Public Function D2B(Dec As Long) As String
D2B = ""
Do While Dec > 0
D2B = Dec Mod 2 & D2B
Dec = Dec \ 2
Loop
End Function

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

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

' 用途:将十六进制转化为十进制
' 输入:Hex(十六进制数)
' 输入数据类型:String
' 输出:H2D(十进制数)
' 输出数据类型:Long
' 输入的最大数为7FFFFFFF,输出的最大数为2147483647
Public Function H2D(ByVal Hex As String) As Long
Dim i As Long
Dim b As Long

Hex = UCase(Hex)
For i = 1 To Len(Hex)
Select Case Mid(Hex, Len(Hex) - i + 1, 1)
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
H2D = b
End Function

' 用途:将十进制转化为十六进制
' 输入:Dec(十进制数)
' 输入数据类型:Long
' 输出:D2H(十六进制数)
' 输出数据类型:String
' 输入的最大数为2147483647,输出最大数为7FFFFFFF
Public Function D2H(Dec As Long) As String
Dim a As String
D2H = ""
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
D2H = a & D2H
Dec = Dec \ 16
Loop
End Function

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

' 用途:将八进制转化为十进制
' 输入:Oct(八进制数)
' 输入数据类型:String
' 输出:O2D(十进制数)
' 输出数据类型:Long
' 输入的最大数为17777777777,输出的最大数为2147483647
Public Function O2D(ByVal Oct As String) As Long
Dim i As Long
Dim b As Long

For i = 1 To Len(Oct)
Select Case Mid(Oct, Len(Oct) - i + 1, 1)
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
O2D = b
End Function

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

' 用途:将八进制转化为二进制
' 输入:Oct(八进制数)
' 输入数据类型:String
' 输出:O2B(二进制数)
' 输出数据类型:String
' 输入的最大数为2147483647个字符
Public Function O2B(ByVal Oct As String) As 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
O2B = b
End Function

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

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

'====================================================

'16进制转ASC
Function H2A(InputData As String) As String
Dim mydata
mydata = Chr(Val("&H" & InputData))
H2A = mydata
Exit Function
End Function

'10进制长整数转4位16进制字符串
Function S2H(Num As Long) As String
Dim mynum As String
mynum = Hex(Num)
If Len(mynum) = 1 Then mynum = "000" + mynum
If Len(mynum) = 2 Then mynum = "00" + mynum
If Len(mynum) = 3 Then mynum = "0" + Left(mynum, 2) + Right(mynum, 1)
If Len(mynum) = 4 Then mynum = Right(mynum, 2) + Left(mynum, 2)
S2H = mynum
End Function

'10进制长整数转2位16进制字符串
Function S2H2(Num As Long) As String
Dim mynum As String
mynum = Hex(Num)
If Len(mynum) = 1 Then mynum = "0" + mynum
S2H2 = mynum
End Function

'ASCII字符串转16进制字符串
Public Function A2H(str As String) As String
Dim strlen As Integer
Dim i As Integer
Dim mystr As String
mystr = ""
strlen = Len(str)
For i = 1 To strlen Step 1
mystr = mystr + Hex$(Asc(Mid(str, i, 1)))
Next i
A2H = mystr
End Function

'=====================================================
'进制反转
'=====================================================

'反16进制数转10进制数,共8位
Function FHexToInt(ByVal str As String) As String
Dim text1 As String
text1 = str
Dim text2 As String
text2 = Mid(text1, 7, 2)
Dim text3 As String
text3 = Mid(text1, 5, 2)
Dim text4 As String
text4 = Mid(text1, 3, 2)
Dim text5 As String
text5 = Mid(text1, 1, 2)
FHexToInt = Val("&H" & text2 & text3 & text4 & text5)
Exit Function
End Function
'反16进制数转10进制数,共6位
Function FHexToInt6(ByVal str As String) As String
Dim text1 As String
text1 = str
Dim text2 As String
text2 = Mid(text1, 5, 2)
Dim text4 As String
text3 = Mid(text1, 3, 2)
Dim text5 As String
text4 = Mid(text1, 1, 2)
FHexToInt6 = Val("&H" & text2 & text3 & text4)
Exit Function
End Function

'反16进制数转10进制数,共4位
Function FHexToInt4(ByVal str As String) As String
Dim text1 As String
text1 = str
Dim text2 As String
text2 = Mid(text1, 3, 2)
Dim text4 As String
text3 = Mid(text1, 1, 2)
FHexToInt4 = Val("&H" & text2 & text3)
Exit Function
End Function

'10进制数转反16进制数,共8位
Function IntToFHex(ByVal nums As Long) As String
Dim text1 As String
'text1 = Convert.ToString(nums, &H10)
text1 = O2H(nums)
If (Len(text1) = 1) Then
text1 = ("0000000" & text1)
End If
If (Len(text1) = 2) Then
text1 = ("000000" & text1)
End If
If (Len(text1) = 3) Then
text1 = ("00000" & text1)
End If
If (Len(text1) = 4) Then
text1 = ("0000" & text1)
End If
If (Len(text1) = 5) Then
text1 = ("000" & text1)
End If
If (Len(text1) = 6) Then
text1 = ("00" & text1)
End If
If (Len(text1) = 7) Then
text1 = ("0" & text1)
End If
Dim text2 As String
text2 = Mid(text1, 7, 2)
Dim text3 As String
text3 = Mid(text1, 5, 2)
Dim text4 As String
text4 = Mid(text1, 3, 2)
Dim text5 As String
text5 = Mid(text1, 1, 2)
IntToFHex = text2 & text3 & text4 & text5
Exit Function
End Function
'10进制数转反16进制数,共6位
Function IntToFHex6(ByVal nums As Long) As String
Dim text1 As String
text1 = O2H(nums)
If (Len(text1) = 1) Then
text1 = ("00000" & text1)
End If
If (Len(text1) = 2) Then
text1 = ("0000" & text1)
End If
If (Len(text1) = 3) Then
text1 = ("000" & text1)
End If
If (Len(text1) = 4) Then
text1 = ("00" & text1)
End If
If (Len(text1) = 5) Then
text1 = ("0" & text1)
End If
Dim text2 As String
text2 = Mid(text1, 5, 2)
Dim text3 As String
text3 = Mid(text1, 3, 2)
Dim text4 As String
text4 = Mid(text1, 1, 2)
IntToFHex6 = text2 & text3 & text4
Exit Function
End Function

'10进制数转反16进制数,共4位
Function IntToFHex4(ByVal nums As Long) As String
Dim text1 As String
text1 = O2H(nums)
If (Len(text1) = 1) Then
text1 = ("000" & text1)
End If
If (Len(text1) = 2) Then
text1 = ("00" & text1)
End If
If (Len(text1) = 3) Then
text1 = ("0" & text1)
End If
Dim text2 As String
text2 = Mid(text1, 3, 2)
Dim text3 As String
text3 = Mid(text1, 1, 2)
IntToFHex4 = text2 & text3
Exit Function
End Function

'==========================================

Public Function B2S(ByVal str As Byte)
strto = ""
For i = 1 To LenB(str)
If AscB(MidB(str, i, 1)) > 127 Then
strto = strto & Chr(AscB(MidB(str, i, 1)) * 256 + AscB(MidB(str, i + 1, 1)))
i = i + 1
Else
strto = strto & Chr(AscB(MidB(str, i, 1)))
End If
Next
B2S = strto
End Function

Public Function V2H(ByVal sHex As String, Optional bUnicode As Boolean)
Dim sByte As Variant
Dim byChar() As Byte
Dim i As Long
sHex = Replace(sHex, vbCrLf, "")
sByte = Split(sHex, " ")
ReDim byChar(0 To UBound(sByte)) As Byte
For i = 0 To UBound(sByte)
byChar(i) = Val("&h" & sByte(i))
Next
If bUnicode Then
V2H = byChar
Else
V2H = StrConv(byChar, vbUnicode)
End If
End Function

'记录集转二进制流

Public Function R2B(rs As Recordset) As Variant '记录集转换为二进制数据
Dim objStream As Stream
Set objStream = New Stream
objStream.Open
objStream.Type = adTypeBinary
rs.Save objStream, adPersistADTG
objStream.Position = 0
R2B = objStream.Read()
Set objStream = Nothing
End Function

'ASCII码转二进制流

Public Function A2B(str As String) As Variant
Dim a() As Byte, s As String
s = str
a = StrConv(s, vbFromUnicode) '字符串转换为byte型 'a 是byte数组,你可以在程序中调用 ,但不能在textbox中显示。
A2B = a
End Function

'二进制流转ASCII码

Public Function B2A(vData As Variant) As String
Dim s As String
s = StrConv(vData, vbUnicode) 'byte型转换为字符串
B2A = s
End Function

摘自:网络整理

VB部分相关文章推荐:


☆VB 读写TXT文本文件函数

☆VB 提取TextBox 文本框中指定一行字符串

VB 获取汉字拼音的首字母

☆VB 汉字字符串转换成拼音

☆VB判断指定名字的进程是否存在函数

☆VB 两种方法实现热键

☆VB 使用SendMessage枚举文件与目录

☆VB 二进制数组与十六进制字符串相互转换

☆VB 二进制数据读写实例

☆VB 进制转换大全(十进制、十六进制、八进制、二进制、二进制流)互转

☆VB 判断是否文本文件

☆VB 读取UTF-8编码文件函数

☆VB 按指定编码格式写入文本文件

☆VB UTF-8 URL编码函数

☆VB 实现UTF-8 与GB2312互转

☆VB 设置ListView中指定一行的背景颜色

☆VB SendMessage向其他程序窗口发送字符串消息实例

☆VB Listview导出到CSV文件函数

☆vb卸载所有窗体

☆VB中Null, Empty, Nothing, and vbNullString的区别

☆利用API函数计算程序运行时间VB

☆获取快捷方式原文件路径vb路径

☆利用VB函数Dir()实现递归搜索目录

☆VB数组的清除和重新定义

☆用RtlAdjustPrivilege来调整进程权限(VB6.0代码)

☆获取对象的接口信息(方法/属性/事件)(VB6代码)

☆VB6中给数组赋值的限制

☆[vb]一些窗口消息的详解

☆VB直接播放EXE文件中的声音文件

☆VB中利用CopyMemory使用指针

☆VB读写注册表的三种方法

☆[VB]SaveSetting 语句 和 DeleteSetting 语句

☆VB APP对象属性一览表 + 灵活使用VB的APP对象

☆[vb]SendMessageA函数

☆使用VB绘制抛物线动画曲线

☆关于vb中的容器

☆[vb]利用WScript.Shell对象隐藏cmd命令行运行

☆浅析VB For Each.Next语句

☆VB中窗体模块、标准模块、类模块的区别

☆引用 VB类模块

☆VB中什么是类,类模块有什么作用

☆VB SendKeys 语句

☆VB 全局热键

☆用VB轻松调用其他程序

☆vb读取txt文件到textbox

☆如何去优化你的VB程序3

☆如何去优化你的VB程序2

☆如何去优化你的VB程序1

☆[VB]在状态栏中显示帮助信息

☆[VB]把屏幕保存为图像

☆Mp3Play.ocx控件让音乐之声响起来


更多精彩>>>

VB 进制转换大全(十进制、十六进制、八进制、二进制、二进制流)互转相关推荐

  1. Java算法学习:java进制转换(十进制转八进制,十进制转二进制,十六进制转八进制)

    java进制转换(十进制转八进制,十进制转二进制,十六进制转八进制) 这几天在复习C语言的数据结构栈和队列那一章的时候,看到利用栈的特性FILO实现的进制转换十分简洁 想起了java中实现栈的操作十分 ...

  2. JAVA练习题————进制转换之十进制转八进制

    题目:/* 十进制数转八进制数          * 编写函数把一个十进制数输出其对应的八进制数.*/ 思路:利用Integer.toOctalString()进行进制转换 下面是代码编译部分: im ...

  3. 任意进制转换成十进制间互化(ASCII码法)(C/C++)

    目录 1 最早的版本(C) 2  针对上面的问题进行改进(C++) 2.1  任意进制转换成十进制(运用字符串) 2.2  十进制转换成任意进制(运用数组逆序存储+取模作除法) 3  ASCII码参考 ...

  4. java函数实现进制转换与java实现八进制到十进制的转换(百练OJ:2735:八进制到十进制)

    java进制转换函数介绍:Java二进制.八进制.十进制.十六进制相互转换: 二进制转十进制 Integer.parseInt("0110", 2); 八进制转十进制 Intege ...

  5. 【进制转换】十进制到二、八、十六进制

    进制转换的原理: 先将一个十进制数转换成二进制数: (构造一个0 ~2^30的数组,用number和数组中每个元素逆序比大小, 如果number >= quan_arr[i], 就让number ...

  6. 进制转换:十进制转六进制/转八进制

    法1: #include <stdio.h>int main() {int n = 0;int arr[1000] = { 0 };scanf("%d", &n ...

  7. python进制转换大全

    二进制bin() : 描述:将其它进制的数转换为二进制的数.如八进制,十进制,十六进制等. 语法:bin(number)  返回一个二进制数. number -- 其它进制的数 八进制oct(): 描 ...

  8. 各进制转换成十进制的方法

    进制 常见的进制以及其取值范围 二进制 -----> 0 ~ 1 八进制 -----> 0 ~ 7 十进制 -----> 0 ~ 9 十六进制 -----> 0 ~ 9.a(1 ...

  9. python二进制转十进制算法_python进制转换:十进制转二进制的用法

    我们在学习python时候肯定会碰到关于进制转换,其实这是非常简单的,这个就像小学学习数学乘法口诀意义,只要记住转换口诀即可轻松应用,一起来看下具体的操作内容吧~ 一.python进制转换 dec(十 ...

最新文章

  1. LeetCode Path Sum II(dfs或者bfs)
  2. vc++ mfc 非客户区 描绘线_决战客户端技术
  3. android frida 检测_frida测试方法整理
  4. ansible playbook中使用迭代with_items案例
  5. AndroidManifest中activity属性设置大全
  6. r语言mfrow全程_R语言中的色彩_LearningR - SegmentFault 思否
  7. Linux命令(8):headtail命令
  8. Android 推断当前Activity是不是最后一个Activity 以及 应用或Activity是否存在
  9. mysql分组查询 having,MYSQL-分组查询-where和having的区别
  10. 上车,在北京地铁10号线偶遇一下
  11. 新东方私有化背后的秘密
  12. leetcode之移除链表的元素
  13. 更新数据,删除缓存,更新数据库谁先执行
  14. 计算机网络复习重点/经典考试知识点
  15. 历史 微信开发者工具_关于微信小程序开发者工具的版本管理使用介绍
  16. keyshot怎么贴logo_Keyshot贴图技巧,Keyshot纹理中的常用贴图方法
  17. 深圳绿色建筑数量和规模居全国榜首 建筑人才需求增加
  18. 【LE AUDIO】LC3 - Low Complexity Communication Codec
  19. 开关电源保险丝、整流桥及输入滤波电容的选型
  20. yocto系列讲解[理论篇]56 - poky下目录结构

热门文章

  1. Python 对象的身份迷思:从全体公民到万物皆数
  2. 人工智能迎来寒冬,自动驾驶汽车发展受阻
  3. 华为否认窃密;贾跃亭陪许家印考察FF;谷歌或被罚95亿欧元 | 极客头条
  4. 如何掌握所有的编程语言?
  5. 区块链的爆发仍为时尚早......
  6. 人才稀缺的区块链,程序员转型入门必看这四项技能
  7. 金三银四大厂面经总结,mysql创建视图的sql语句
  8. java面向对象程序设计编程题,已拿到offer
  9. cisco packet tracer 5.3.rar_思科cisco的asa防火墙排错命令packet-tracer
  10. 阶段面试题_关于文案、交易系统、付费渗透率、阶段性目标的面试题解答