vb语言怎么在一个字节中取指定值得位置

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:14:43
vb6.0程序接收的字节中,仅有一位是1,其余都为0,用什么方法能求1在哪一位上,急!!
如果8位中为1的位数和位置不定,也就是有256种可能结果,最慢的方法是比较,有更快更好的办法判断吗

看数值,1,2,4,8,16,32,64,128分别对应
帮你写一个小函数吧。
作用:把单字节数值转为二进制,这样就可以非常直观的看出有哪几位为1,哪几位为0。代码如下:
Private Function uDexToBin(ByVal DexData As Byte) As String

Dim i As Long

uDexToBin = ""

For i = 7 To 0 Step -1

If DexData >= 2 ^ i Then

uDexToBin = uDexToBin & "1"
DexData = DexData - 2 ^ i

Else

uDexToBin = uDexToBin & "0"

End If

Next

End Function
顺便提醒楼主,这段代码只能转换单字节数据,如果你需要转换多字节,可以提出来,我再帮你

instr("01234","1") 返回2 ,为第二位

2楼建议可以,将单字节先转换为16进制输入在Text2后,下面的代码可输出1的位置:
Option Explicit
Dim sHex As String
Dim sBin As String
Dim sBin1 As String
Dim sj(1 To 8) As String * 1
Private Sub Command1_Click()
Dim i As Integer
sHex = Text2
HexToBin (sHex)
Text1 = sBin1
For i = 1 T