2012-05-08 72 views
3

如何將字符串從文本框轉換爲十六進制?如何在VB.NET中將字符串轉換爲十六進制?

我只在C#中找到方法。 VB.NET有能力做這樣的事情嗎?如果可以,那麼我想知道如何將字符串轉換爲十六進制和十六進制字符串。

+0

你想 'A' 爲INT(10)?和10到十六進制(A)? – corn3lius

+0

@ corn3lius如果int(10)變成十六進制,那麼是的 –

回答

9
Dim val As String 
val = "10" 
Dim hexVal As Integer 
hexVal = Convert.ToInt32(val, 16) //16 specifies the base 
Console.WriteLine(hexVal) 

這將顯示16是十六進制字符串「10」的等效整數。

+1

反過來說,你可以使用十六進制(16) – corn3lius

+0

嗯,我試過這個,不明白它。我如何讓字母轉換? –

+0

@MarkChai,只需設置val =「A」,它將顯示16或將其設置爲「10A」,它將顯示266 – Habib

3
Public Function StrToHex(ByRef Data As String) As String 
    Dim sVal As String 
    Dim sHex As String = "" 
    While Data.Length > 0 
     sVal = Conversion.Hex(Strings.Asc(Data.Substring(0, 1).ToString())) 
     Data = Data.Substring(1, Data.Length - 1) 
     sHex = sHex & sVal 
    End While 
    Return sHex 
End Function 
+0

有沒有一種方法可以在計時器中使用它? –

+0

不正確的十六進制代碼<0x10 – zhangyoufu

2

要轉換成十六進制,請使用Convert.ToInt32(val, 16)。 Convert.ToInt32支持有限的鹼基,2,8,10,和16

要轉換成的任何鹼,可使用:

Public Shared Function IntToString(value As Integer, baseChars As Char()) As String 
    Dim result As String = String.Empty 
    Dim targetBase As Integer = baseChars.Length 

    Do 
     result = baseChars(value Mod targetBase) + result 
     value = value/targetBase 
    Loop While value > 0 

    Return result 
End Function 

上述功能來自this question。 C#到VB轉換已完成using this

3

可以整數容易做轉換爲hexdecimal號:

Convert.ToInt32(15, 16) 

並將其轉換回一個整數,你可以這樣做:

Integer.Parse("15f", System.Globalization.NumberStyles.HexNumber) 
0

短,有效表達以十六進制形式顯示字符串s的所有字符可以使用LINQ寫入

String.Join(" ", s.Select(Function(c) Conversion.Hex(AscW(c)).PadLeft(4, "0")).ToArray())) 

實施例:

對於字符串► fix它給串25BA 0020 0066 0069 0078

享受!

請記住,這是啓用Unicode,爲每個字符返回4位十六進制值,因爲舊的普通非Unicode ASCII是死了,你不應該再依賴於它的任何應用程序。

1

屢試不爽代碼

創建通過複製此功能將其粘貼。

Function StringToHex(ByVal text As String) As String 
    Dim hex As String 
    For i As Integer = 0 To text.Length - 1 
     hex &= Asc(text.Substring(i, 1)).ToString("x").ToUpper 
    Next 
    Return hex 
End Function 

使用方法如下

Debug.WriteLine(StringToHex("sim0n")) 

Source

+0

不正確的十六進制代碼<0x10 – zhangyoufu

相關問題