2014-06-12 46 views
1

我試圖模擬密碼學中的算法,並且需要將0和1的字符串轉換爲單詞。例如: 我有:01011110010101101000001101100001101 我已經它分割成一個字符串數組: 0101111,0010101,...如何在Visual Basic中將字符串轉換爲字節

每個構件具有7個字符。我想獲得一個0101111在UTF8中表示的信件?我該怎麼做呢?

我嘗試CType(「0010101」,字節),但它失敗。我可以通過這種方式最大111。 幫助:/

+0

呃......應該不是字節是8位而不是7位? –

+0

@DanielCook這可能不太好。每個具有任意7位模式(0 msb)的字節都是有效的UTF-8編碼,每個字符一個字節。對於任意8位模式,這不是真的。一個可以工作的字符集是CP437。 –

+0

對於VB.NET和效率低下的LINQ,我得到了zT␅6X。直到後來我才注意到[vba]。 –

回答

1

UTF-8是8位,只有7位。你的意思是7位ASCII碼?

在這種情況下,在這裏你去:

Function BinToStr(binStr As String) As String 

    Dim i As Long 

    For i = 0 To (Len(binStr)/7) - 1 
     [A1] = CLng(Mid(binStr, i * 7 + 1, 7)) 
     BinToStr = BinToStr & Chr([BIN2DEC(A1)]) 
    Next 
End Function 

如果這不是你要找的內容,讓我知道。

+0

方括號'''''''做什麼? – ja72

+0

@ ja72作爲訪問單元格引用和函數的快捷方式,內置於Excel VBA中。他甚至可能沒有要求VBA,他可能意味着VB.NET,在這種情況下,[A1]將被臨時變量替換,而BIN2DEC功能必須來自VB.NET庫。 – KthProg

相關問題