2024年4月12日发(作者:)

vb十进制转二进制函数

在.NET Framework中,t类中的ToString方法

和ToInt32(ToInt64)方法都可以方便的实现各种进制间的

相互转换。

1、Convert .ToString 方法

Convert .ToString 方法可以将整数值转换为其指定基数(必

须是 2、8、10 或 16)的等效字符串表示形式。即可以将十

进制整数转换成二进制、八进制、十进制(无实际意义)或十

六进制数字的字符串。Convert .ToString(value,toBase)

参数:value——整型,要转换的整数;toBase——

System .Int32 ,返回值的基数,必须是 2、8、10 或 16。

返回值:System .String ,以 toBase 为基的 value 的字符

串表示形式。如:

Dim int As Integer = 256

'十进制转二进制

Dim str2 As String = ng(int, 2)

'十进制转八进制

Dim str8 As String = ng(int, 8)

'十进制转十进制

Dim str10 As String = ng(int, 10)

'十进制转十六进制

Dim str16 As String = ng(int, 16)

ine("十进制转二进制:" & str2)

ine("十进制转八进制:" & str8)

ine("十进制转十进制:" & str10)

ine("十进制转十六进制:" & str16)

测试结果如图:

2、Convert .ToInt32(ToInt64) 方法

将指定基数的数字的字符串表示形式转换为等效的整数。即可

以将二进制、八进制、十进制(无实际意义)或十六进制整数

的字符串表示形式转换为十进制的数字(整型)。

Convert .ToUInt64(value,fromBase)参数:value——

System .String ,包含要转换的数字的字符串;fromBase—

—System .Int32 ,value 中数字的基数,它必须是 2、8、

10 或 16。返回值:整型,与 value 中数字等效的 整数,如

果 value 为 Nothing,则为 0(零)。如:

'二进制

Dim str2 As String = ""

'八进制

Dim str8 As String = "400"

'十六进制

Dim str16 As String = "100"

'二进制转十进制

Dim int2 As Integer = 32(str2, 2)

'八进制转十进制

Dim int8 As Integer = 32(str8, 8)

'十六进制转十进制

Dim int16 As Integer = 32(str16,

16)

3、二进制、八进制、十进制或十六进制间任意互转(输出字

符串)

先把字符串转换成十进制数字,再把数字转换成其他进制的

字符串。

Sub Main()

'二进制

Dim str2 As String = ""

'八进制

Dim str8 As String = "400"

'十六进制

Dim str16 As String = "100"

'二进制转十六进制

Dim str2to16 As String = ConvertString(str2, 2,

16)

'八进制转十六进制

Dim str8to16 As String = ConvertString(str8, 8,

16)

'十六进制转二进制

Dim str16to2 As String = ConvertString(str16,

16, 2)

End Sub

'''

''' 进制转换

'''

''' 二进制、八进制、十进制或十

六进制整数的字符串表示形式

''' 与value值中的相对应的

基数(2、8、10或16)

''' 要转换成的进制基数(2、

8、10或16)

'''

Private Function ConvertString(ByVal value As

String, ByVal fromBase As Int32, ByVal toBase As Int32)

As String

Dim intValue As Integer =

32(value, fromBase)

Return ng(intValue, toBase)

End Function

4、其他进制转换方法

ng方法或方法可以将十进制整

数转换成十六进制的数字字符串表现形式,但没有提供其他进

制的转换。如:

Dim int As Integer = 256

Dim strS As String = ng("x")

Dim strF As String = ("{0:x}",

int)

5、进制基础知识

比如十进制的15,其二进制为1111,八进制为17,而16进

制为F,各种进制之间是如何转换的呢?

(1)二进制、八进制、十六进制转十进制

可见,在十进制中,每一位表示10的幂,要知道十进制位

所代表的具体数字,可以将相应数字乘以10的幂,然后把结

果相加。按照同样的方法,二进制中,每一位表示2的幂,则

应将数字乘以2的幂,然后把结果相加即可得到相应的十进制

数。依此类推,八进制和十六进制都可以按此方法转换为十进

制。

(2)十进制转二进制、八进制、十六进制

方法:除相应进制的基数(如二进制的基数为2、八进制的

基数为8、十六进制的基数为16)取余法,即每次将整数部分

除以基数,余数为该位权上的数,而商继续除以基数,余数又

为上一个位权上的数,这个步骤一直持续下去,直到商为0为

止,最后读数时候,从最后一个余数读起,一直到最前面的一

个余数。例:将十进制的(15)转换为二进制的步骤如下:

1.

将商15除以2,商7余数为1;

2.

将商7除以2,商3余数为1;

3.

将商3除以2,商1余数为1;

4.

将商1除以2,商0余数为1;

5.

读数,读数字从最后的余数向前读,1111。

将十进制的(15)转换为八进制的步骤如下:1、 将商15除

以8,商1余数为7;2、将商1除以8,商0余数为1;3、

读数,读数字从最后的余数向前读,17。

将十进制的(15)转换为十六进制的步骤如下:1、 将商15除

以16,商0余数为15;2、读数,读数字从最后的余数向前

读,15,十六进制用字母F表示。