进制数换算
来源:互联网 发布:c语言流程图 编辑:程序博客网 时间:2024/04/29 08:18
Public Shared Function DecToHex(ByVal value As Integer) As String
Return BinToHex(DecToBin(value))
End Function
'二进制数转换成十进制数
Public Shared Function BinToDec(ByVal value As String) As Integer
Dim i As Integer
Dim returnValue As Integer = 0
For i = value.Length - 1 To 0 Step -1
returnValue += Val(value.Chars(value.Length - 1 - i)) * (2 ^ i)
Next
Return returnValue
End Function
'任意二进制数转换成十六进制数
Public Shared Function BinToHex(ByVal value As String) As String
If value.Length Mod 4 <> 0 Then
value = value.PadLeft(4 * (value.Length / 4 + 1), "0"c)
End If
Dim i As Integer
Dim returnString As String = ""
Dim tempString As String
For i = 0 To value.Length / 4 - 1
tempString = value.Chars(4 * i) + value.Chars(4 * i + 1) _
+ value.Chars(4 * i + 2) + value.Chars(4 * i + 3)
returnString += GetHexChar(tempString)
Next
Return returnString
End Function
'特殊情况:4位二进制数转换成十六进制数
Public Shared Function GetHexChar(ByVal value As String) As String
Dim tempValue As Integer
tempValue = BinToDec(value)
If tempValue < 10 Then
Return CStr(tempValue)
Else
Select Case tempValue - 10
Case 0
Return "A"
Case 1
Return "B"
Case 2
Return "C"
Case 3
Return "D"
Case 4
Return "E"
Case 5
Return "F"
End Select
End If
End Function
'仅限非负整数
'十进制数转换成二进制数
Public Shared Function DecToBin(ByVal value As Integer) As String
If value = 0 Then Return "0"
Dim tempValue As Integer = value
Dim tempString As String = ""
Dim modValue As Integer
Do
tempString += CStr(tempValue Mod 2)
tempValue = tempValue / 2
Loop While (tempValue <> 0)
Dim i As Integer
Dim returnChars As Char() = tempString.ToCharArray()
Dim returnString As String = ""
For i = tempString.Length - 1 To 0 Step -1
returnString += returnChars(i)
Next
Return returnString
End Function
'十六进制数转换成十进制数
Public Shared Function HexToDec(ByVal value As String) As Integer
Dim i As Integer
Dim returnValue As Integer = 0
For i = value.Length - 1 To 0 Step -1
Dim num As Integer = 0
Select Case value.Chars(value.Length - 1 - i)
Case "0"c To "9"c
num = Val(value.Chars(i))
Case "A"c
num = 10
Case "B"c
num = 11
Case "C"c
num = 12
Case "D"c
num = 13
Case "E"c
num = 14
Case "F"c
num = 15
End Select
returnValue += num * (16 ^ i)
Next
Return returnValue
End Function
- 进制数换算
- C++编程(一)进制数换算、存储单位
- 长度换算
- 单位换算
- 时间换算:
- 经纬度换算
- 日期 换算
- 基本单位换算
- 时间换算
- 单位换算
- 字节换算
- 内存换算
- 硬盘容量换算
- 单位换算
- 换算毛毛
- 单位换算
- 换算时间
- 时间换算
- 无人职守时运行robot的设想
- 面试:“十大必考题”揭幕
- 設定 robots.txt (转载)
- 今天学.net写的例子
- 体现职业技巧:职场中必备的七个黄金句型
- 进制数换算
- 用php写的UBB代码,有要的兄弟拿去
- 防范和查杀ASP木马
- 阿江的WINDOWS服务器安全设置
- Windows 2003认证十大学习主题
- SQL Server 2005 数据库开发新架构(2005.11.22 来自:搜狐IT)
- extern "C"
- SQL Server 2005 产品线的扩展(2005.11.22 来自:搜狐IT)
- HttpWebRequest请求的安全问题