テキスト ボックスの文字列を 16 進数に変換するにはどうすればよいですか?
私はC#でしか方法を見つけていません。VB.NET にはそのようなことを行う機能がありますか? 可能であれば、文字列を16進数に、16進数を文字列に変換する方法を知りたいです。
テキスト ボックスの文字列を 16 進数に変換するにはどうすればよいですか?
私はC#でしか方法を見つけていません。VB.NET にはそのようなことを行う機能がありますか? 可能であれば、文字列を16進数に、16進数を文字列に変換する方法を知りたいです。
Dim val As String
val = "10"
Dim hexVal As Integer
hexVal = Convert.ToInt32(val, 16) //16 specifies the base
Console.WriteLine(hexVal)
これにより、16 進文字列「10」に相当する整数である 16 が表示されます。
次のようにして、整数を16進数に簡単に変換できます。
Convert.ToInt32(15, 16)
それを整数に戻すには、次のようにします。
Integer.Parse("15f", System.Globalization.NumberStyles.HexNumber)
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
試行錯誤したコード
この関数をコピーして貼り付けて作成します。
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"))
16 進数に変換するには、 を使用します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
上記の関数は、この質問から来ています。C# から VB への変換は、これを使用して行われました。
String のすべての文字s
を 16 進数形式で表示するための短く効果的な式は、 LINQ を使用して記述できます。
String.Join(" ", s.Select(Function(c) Conversion.Hex(AscW(c)).PadLeft(4, "0")).ToArray()))
例:
string の► fix
場合、 string を指定します25BA 0020 0066 0069 0078
。
楽しみ!
これはUnicode-enabledであり、すべての文字に対して 4 桁の 16 進数値を返すことに注意してください。古いプレーンな非 Unicode ASCII は死んでおり、どのアプリケーションでもそれに依存するべきではないためです。