65.9K
CodeProject 正在变化。 阅读更多。
Home

BinaryConverter

starIconstarIconstarIconemptyStarIconemptyStarIcon

3.00/5 (7投票s)

2006年6月13日

CPOL

1分钟阅读

viewsIcon

39449

downloadIcon

796

将 ASCII 文本转换为二进制,反之亦然。

Sample Image - TextToBinaryAndBack.jpg

引言

二进制转换器是一个相当简单的程序,功能正如其名。我知道“Binnary”的拼写是错误的……但它在论坛上引起了一些笑声,所以我决定保留它:)-。

要将文本转换为二进制,只需将文本输入到顶部的文本框中,然后按“转换”按钮。您的文本将被转换为二进制并在第二个文本框中显示。

要将二进制转换为文本,请选择标题为“二进制到字符串”的单选按钮,将您的二进制输入到顶部的文本框中(请勿使用空格等,仅使用 1 和 0;),然后按“转换”按钮。您的二进制将被转换为文本并在底部的文本框中显示。

该程序的主要函数是 IntToBinBinToInt8

IntToBin 是将数字转换为二进制的标准例程的优化版本,并不太复杂。

Private Shared Function IntToBin(ByVal Number As Integer) As String
    Dim Temp As Integer = 1
    Do Until Temp > Number
        Temp <<= 1'Quickly multiply by 2 by shifting up one bit
    Loop
    While Temp > 0
        If Number < Temp 
            Then : IntToBin &= "0"
        Else
            IntToBin &= "1"
            Number -= Temp
        End If
        Temp >>= 1'Quickly divide by 2 by shifting down 1 bit
    End While
    IntToBin = IntToBin.PadLeft(8, "0")'Pad to make this 1 byte (8 bits)
End Function

BinToInt8 也是一个简单的例程,它使用反向查找来计算 8 位二进制字符串的数值。

Private Shared m_IndexArr() As Integer = {128, 64, 32, 16, 8, 4, 2, 1}

Private Shared Function BinToInt8(ByVal chars() As Char) As Integer
    For i As Integer = 0 To 7
        If chars(i) = "1" Then BinToInt8 += m_IndexArr(i)
    Next i
End Function

这更多的是作为一个玩具而不是出于实际目的而构建的,但我已将转换例程放入一个单独的类中,以防您想在项目中将其使用。希望您喜欢它,并在您在办公室遇到难题需要一个很好的消遣时,它能给您带来一些乐趣;)

如果您有任何问题或建议,请随时提出。

© . All rights reserved.