VB中十六进制数值转换成同内容字符串????
byte(16)型的数组里的数值为 48 57 02 (字符的ASCII码)想将其变成十六进制数值, 30 39 02 (十六进制的ASCII码)
并转换成字符串形式“303902”,请问怎么转???
尝试过用
将十进制数转成十六进制数用的是Hex(十进制数值) 函数,已经成功转换。
但是十六进制转字符串的时候用StrConv()函数出来的值却有乱码。
比如将30转成字符串后出来的值是.3。
请问该怎么转?造成出现乱码的原因是什么? vb hex byte --------------------编程问答--------------------
Sub Main()
Dim arr As Byte() = {48, 57, 2}
Dim strAscii = New String(arr.Select(Function(x) CChar(Chr(x))).ToArray())
Dim strHex = String.Join(" ", arr.Select(Function(x) Hex(x).PadLeft(2, "0")))
Console.WriteLine(strAscii)
Console.WriteLine(strHex)
End Sub
09
30 39 02
Press any key to continue . . . --------------------编程问答-------------------- 注意,02这个ASCII代码表示一个非打印字符。 --------------------编程问答--------------------
不行啊 编译就过不了啊 --------------------编程问答--------------------
需要VS2010或2012。我在2010下测试通过。 --------------------编程问答-------------------- byte(16)型的数组里的数值为 48 57 02 (字符的ASCII码)
想将其变成十六进制数值, 30 39 02 (十六进制的ASCII码)
并转换成字符串形式“303902”,请问怎么转???
-----------------------------------------
嘿嘿,正好我有个项目也用到了。给你看看。
Dim byteToRead As Int16 = SerialPort2.BytesToRead
Dim ch(byteToRead) As Byte
Dim bytesRead As Int16 = 0
bytesRead = SerialPort2.Read(ch, 0, byteToRead)
Dim indata, indatacut As String
For i As Int16 = 0 To bytesRead - 1
indata = indata & DecToHex(ch(i))
Next
Public Function DecToHex(ByVal DecNumber As Byte) As String
If DecNumber <= 15 Then
DecToHex = "0" & Hex(DecNumber)
Else : DecToHex = Hex(DecNumber)
End If
End Function
补充:.NET技术 , VB.NET