跟位运算有关的题

barbaraandapple 2009-03-30 08:47:47
假如由MSC串口接受到一个数据为8FH,即10001111,通过怎样的程序编写我能够得到它的每一位到底是1还是0?
...全文
99 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2009-04-01
  • 打赏
  • 举报
回复
Debug.Print IIf((Value And &H80)<>0, "正常","错误")
Tiger_Zhao 2009-03-31
  • 打赏
  • 举报
回复
Function BinByte(ByVal Value As Byte) As String
Dim s As String
Dim i As Long
Dim n As Byte

n = Value
s = Space$(8)
For i = 8 To 1 Step -1
Mid$(s, i, 1) = CStr(n Mod 2)
n = n \ 2
Next

BinByte = s
End Function
barbaraandapple 2009-03-31
  • 打赏
  • 举报
回复
嗯嗯~我看到了,谢谢各位啊~原来对你们来说这是个这么简单的问题呀,那如果我需要对这八位数进行确定该怎么做呢?就是说第一位如果是1的话就表示正常,如果是0的话就表示错误,第二位如果是1的话表示开始,0表示结束等等的,我该如何运用print呢?
yesvery 2009-03-31
  • 打赏
  • 举报
回复
楼主满意不满意,请回个话呀
yesvery 2009-03-31
  • 打赏
  • 举报
回复
哈哈,小小问题,万千解法,八仙过海,各显其能呀!
神马都能聊 2009-03-30
  • 打赏
  • 举报
回复

'打印为1的位置
Dim str As String
Dim btmp() As Byte
Dim i As Long

str = "10001111"
btmp = str

For i = 0 To UBound(btmp) Step 2
If Chr(btmp(i)) Then
Debug.Print CStr(i / 2 + 1) & "-" & Chr(btmp(i))
End If
Next
yesvery 2009-03-30
  • 打赏
  • 举报
回复

Dim b As Integer, s As String, i As Integer
b = &H8F
For i = 7 To 0 Step -1
s = s & (b And 2 ^ i) / 2 ^ i
Next i
Print s
of123 2009-03-30
  • 打赏
  • 举报
回复

方法二:

Dim tmp As Byte, i As Integer
Dim strHex As String, strBinary As String

tmp = &H8F

strHex = Format(Hex(tmp), "00")
For i = 1 To 2
strBinary = strBinary & Choose(Val("&H" & Mid(strHex, i, 1)) + 1, "0000", "0001", "0010", "0011", _
"0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111")
Next i

For i = 1 To 8
Debug.Print Mid(strBinary, i, 1)
Next i
of123 2009-03-30
  • 打赏
  • 举报
回复

方法一:

Dim tmp As Byte
Dim i As Integer, n As Integer

tmp = &H8F

For i = 7 To 0 Step -1
n = 2 ^ i
Debug.Print (tmp And n) / n
Next i
yesvery 2009-03-30
  • 打赏
  • 举报
回复
这里是一个10进数据转换成二进制字符串的例子


Private Sub Command1_Click()
Dim b As Integer, s As String, i As Integer
b = 143
For i = 1 To 8
b = b * 2
If b >= 256 Then
b = b - 256
s = s & "1"
Else
s = s & "0"
End If
Next
Print s
End Sub


zlzfc 2009-03-30
  • 打赏
  • 举报
回复
用这个为&H8F& and 2^(n-1)&
如果=0 则表示 第n位 =0

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧