如何获得一个字节的每位的值???
For j = 1 To 8
                    
x = (bt \ (2 ^ j)) Mod 2
Print x;Next j
怎么得到的结果是错的。

解决方案 »

  1.   

    for j = 0 to 7
      

  2.   

    发错
    for j = 0 to 7
    x = ((bt-(bt\(2^(j+1))*(2^(j+1)))\(2^j)) mod 2
    print x
    next j
    试试
      

  3.   

    Dim bt As Byte
    Dim halfBt As Integer
    halfBt = 0
    bt = &H29
                    
    For j = 1 To 8
                        
       halfBt = halfBt + ((bt \ (2 ^ j)) Mod 2) * 2 ^ (8 - j)
       x = (bt \ (2 ^ j)) Mod 2
       Print x;
    Next j
       Print
       Print halfBt
       Print bt
    打印的结果是
    00101000
    40
    41应该是
    00101001
    41
    41
    呀。。
    等待高手指教
      

  4.   

    TO  hanhuole(火星来的程序员) 
    还是不行呀
      

  5.   

    For j = 1 To 8Print bt mod 2
    bt=bt\2Next j
      

  6.   

    dim s as string
    dim bt as long
    dim j as long
    bt=123
    For j = 1 To 8
       s=cstr( bt mod 2) & s
       bt=bt\2
    Next j
    msgbox s
      

  7.   

    For j = 0 To 7
                        
    x = Int(bt / (2 ^ j)) Mod 2
    Print x;Next j\整除号会四舍六入五留双,不是截尾。此问题我曾经发起讨论过,结果大家都不重视。嘿嘿,问题来了吧…… :D
      

  8.   

    咳,是我想复杂了,楼主的意思就是把一个255以内的整数转成2进制是吗?Private Sub Command1_Click()
    Dim bit(7), i As Long, bt As Byte
    bt = 123'''''''''''
    For i = 0 To 7
    bit(7 - i) = bt Mod 2
    bt = bt \ 2
    Next i
    Print Join(bit, ",")
    End Sub
      

  9.   

    Sorry,收回上面一帖(不是这个问题,呵呵……道歉)Dim bt As Byte, j As Integer, x As Integer
    Dim halfBt As Integer
    halfBt = 0
    bt = &H29
                    
    For j = 0 To 7
                        
       x = Int(bt / (2 ^ j)) Mod 2
       halfBt = halfBt + ((bt \ (2 ^ j))) Mod 2) * 2 ^ j 
       Print x;
    Next j
       Print
       Print halfBt
       Print bt主要还是j的问题,还有:你打印出来的二进制是反的,要注意了 :)
      

  10.   

    Function HexToBin(ByVal sHex As String) As String
        On Error GoTo errSta
        Dim i As Long
        Dim sBinStr As String
        If sHex = "" Then Exit Function
        sBinStr = "0000000100100011010001010110011110001001101010111100110111101111"
        For i = 1 To Len(sHex)
            HexToBin = HexToBin & Mid$(sBinStr, CLng("&H" & Mid$(sHex, i, 1)) * 4 + 1, 4)
        Next
        Exit Function
    errSta:
        HexToBin = ""
    End Function然后
    sBin = HexToBin(Hex(123))然后sBin就等于01111011了
      

  11.   

    Private Sub Command1_Click()
    Dim bt As Byte, j As Integer, x As Integer
    Dim mstr As String
    bt = &H29
    mstr = ""
    For j = 7 To 0 Step -1
       x = (bt - (bt \ 2 ^ (j + 1)) * (2 ^ (j + 1))) \ 2 ^ j
       mstr = mstr & CStr(x)
    Next jEnd Sub
    mstr中是结果