Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: бит Добавлено: 02.06.03 12:34  

Автор вопроса:  Stick | Web-сайт: www.kamchatka.ru

Как разбить байт на биты? Есть значение 0x08, оно разбивается на 0000 0100, но как с помощью VB? Кодом, если можете.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 ZeroX



ICQ: 220401330 

Вопросов: 47
Ответов: 406
 Профиль | | #1 Добавлено: 02.06.03 12:39
Попробуй переводить в двоичную систему исчесления

Ответить

Номер ответа: 2
Автор ответа:
 hedgehog



ICQ: 175571327 

Вопросов: 15
Ответов: 207
 Web-сайт: ezh.ru
 Профиль | | #2
Добавлено: 02.06.03 12:41

Пригодится?

Option Explicit

Sub Main()
    Debug.Print Bin(8, 8)
    Stop
End Sub

' convert from decimal to binary
' if you pass the Digits argument, the result is truncated
' to that number of digits
'
' NOTE: requires Power2()

Function Bin(ByVal value As Long, Optional digits As Long = -1) As String
    Dim result As String, exponent As Integer
    ' this is faster than creating the string by appending chars
    result = String$(32, "0")
    Do
        If value And Power2(exponent) Then
            ' we found a bit that is set, clear it
            Mid$(result, 32 - exponent, 1) = "1"
            value = value Xor Power2(exponent)
        End If
        exponent = exponent + 1
    Loop While value
    If digits < 0 Then
        ' trim non significant digits, if digits was omitted or negative
        Bin = Mid$(result, 33 - exponent)
    Else
        ' else trim to the requested number of digits
        Bin = Right$(result, digits)
    End If
End Function

' Raise 2 to a power
' the exponent must be in the range [0,31]

Function Power2(ByVal exponent As Long) As Long
    Static res(0 To 31) As Long
    Dim i As Long
   
    ' rule out errors
    If exponent < 0 Or exponent > 31 Then Err.Raise 5
   
    ' initialize the array at the first call
    If res(0) = 0 Then
        res(0) = 1
        For i = 1 To 30
            res(i) = res(i - 1) * 2
        Next
        ' this is a special case
        res(31) = &H80000000
    End If
   
    ' return the result
    Power2 = res(exponent)
       
End Function

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам