如何将十六进制值转换为ASCII?

43.*_*4D. -1 vb.net hex ascii

我正在尝试使用fstream编写可执行文件:

Dim buffer As String
Dim c As Char = Chr(9)
Dim fs As System.IO.FileStream = New System.IO.FileStream("test.exe", IO.FileMode.OpenOrCreate)
Dim w As System.IO.BinaryWriter = New System.IO.BinaryWriter(fs)

w.Seek(0, System.IO.SeekOrigin.Begin)
w.Write(HEX VALUES HERE)

w.Close()
fs.Close()
Run Code Online (Sandbox Code Playgroud)

要将十六进制转换为ASCII,我尝试过如下操作:

  MessageBox.Show(ChrW(Convert.ToInt32("48", 16)))
  MessageBox.Show(Chr(CInt("&H" & "48")))
  MessageBox.Show(Chr(CInt("&H48")))
Run Code Online (Sandbox Code Playgroud)

但是,每个功能只适用于单个字符.如何使这些功能适用于整个字符串?

kru*_*nal 7

我正在发布另一个答案.您可以使用以下代码来实现您的功能.

Dim st As String = "49204c6f76652050726f6772616d6d696e672e"
    Dim com As String
    For x = 0 To st.Length - 1 Step 2
        Dim k As String = st.Substring(x, 2)
        com &= System.Convert.ToChar(System.Convert.ToUInt32(k, 16)).ToString()
    Next
Run Code Online (Sandbox Code Playgroud)

您还可以使用以下代码功能:

Dim st As String = "49204c6f76652050726f6772616d6d696e672e"
Dim com As String
For x = 0 To st.Length - 1 Step 2
    com &= ChrW(CInt("&H" & st.Substring(x, 2)))
Next
Run Code Online (Sandbox Code Playgroud)