vb如何把二进制字符串转换成真正的二进制数据?

 我来答
百度网友9bc4eae
2011-01-30 · TA获得超过1394个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:103万
展开全部
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
第廿世
2011-01-30 · TA获得超过325个赞
知道小有建树答主
回答量:351
采纳率:0%
帮助的人:175万
展开全部
CByte(String)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
野心于
2011-01-29 · TA获得超过108个赞
知道答主
回答量:39
采纳率:0%
帮助的人:23.9万
展开全部
用函数str
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式