VB编程序实现一个十进制数转换成2进制的数

VB编程序实现一个十进制数转换成2进制的数,第1张

转换成十六进制

hex()

如:10(十进制):hex(10)=a

转换成8进制oct()

如:10(十进制):oct(10)=12

转换成2进制,使用下面的方法

'采用连除2取余数,将一个十进制数转换为二进制数

dim

dec

as

integer

'输入一个十进制数

dim

bin

as

string

'转换为二进制表示

dim

res

as

integer

dim

i

as

integer

dec

=

val(inputbox("x="))

form1print

"十进制数:";

dec

do

res

=

dec

mod

2

'求出除以2的余数

bin

=

res

&

bin

dec

=

dec

\

2

loop

while

dec

<>

0

form1print

"转换为二进制数为:";

bin

' 用途:将二进制转化为十六进制

' 输入: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

1、在VB中没有一种所谓的“真正的二进制”,只有long、integer、byte这样的整数。

2、VB中不支持二进制字符串。只支持16进制字符串,需要在前面加前缀"&H"。

比如:CLng("&HFFFF")

3、如果你想将"1010011101"这样的二进制字符串转换为数值,需要自己写一个函数。

下面是我给你写的一个:

Function BinaryValue(ByVal strBin As String) As Long

Dim lngOutValue As Long

Dim bytBytes() As Byte

Dim bytAscii(0 To 255) As Byte

Dim lngBytes_Start As Long

Dim lngBytes_Length As Long

Dim lngBytes_Index As Long

bytAscii(49) = 1

bytBytes() = StrConv(strBin, vbFromUnicode)

lngBytes_Length = UBound(bytBytes)

If lngBytes_Length > 30 Then lngBytes_Start = lngBytes_Length - 30

For lngBytes_Index = lngBytes_Start To lngBytes_Length

lngOutValue = lngOutValue + bytAscii(bytBytes(lngBytes_Index)) 2 ^ (lngBytes_Length - lngBytes_Index)

Next

BinaryValue = lngOutValue

End Function

BinaryValue函数可以将31位以下的二进制字符串转换为Long类型整数。

比如下面的用法:

MsgBox (BinaryValue("1111111111111111111111111111110"))

4、如果你想获取一个整数的二进制位可以使用下面的函数:

Function BinaryBit(ByVal lngValue As Long, ByVal lngIndex As Long) As Long

BinaryBit = (lngValue \ 2 ^ lngIndex) Mod 2

End Function

lngValue是long类型数值;

lngIndex是二进制位,从0开始计算,最大值是30。第0位是二进制最右边的那个位。

比如5的二进制是"101"

MsgBox BinaryBit(5, 0) 返回1

MsgBox BinaryBit(5, 1) 返回0

MsgBox BinaryBit(5, 2) 返回1

下面演示如何获取&HFF(255)的二进制字符串。

Dim i As Long

Dim s As String

For i = 0 To 30

s = BinaryBit(&HFF, i) & s

Next

MsgBox s

以上就是关于VB编程序实现一个十进制数转换成2进制的数全部的内容,包括:VB编程序实现一个十进制数转换成2进制的数、二进制转换成十六进制VB代码、怎样在vb上将十进制数转换为二进制字符串等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10129667.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存