本文介绍了十六进制数字(不是ASCII十六进制值)在VB.NET中字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试过寻找这个,但大多数人只是想将十六进制值转换为它们的ASCII等值。这不是我想要做的。
我正在查看VB.NET是否有一个简单的内置函数来执行此操作:
私有函数NibbleToString(ByVal Nibble As Byte)As String
Dim retval As String = String.Empty
Select Case Nibble
案例& H0
retval =0
案例& H1
retval =1
案例& H2
retval =2
案例& H3
retval =3
案例& H4
retval =4
案例& H5
retval =5
案例& H6
retval =6
案例& H7
retval =7
案例& H8
retval =8
案例& H9
retval =9
案例& HA
retval =A
案例& HB
retval =B
Case& H C
retval =C
Case& HD
retval =D
Case& HE
retval =E
Case& amp; amp; ; HF
retval =F
结束选择
返回retval
结束功能
是否有更完美的方式来完成与该代码相同的功能? 使用 ToString
与:
Dim b As Byte = & HA3
Console.WriteLine(b.ToString(X))'显示A3
Dim i As Integer =& H12AB89EF
Console.WriteLine(i .ToString(X))'显示12AB89EF
如果你只是想做因为某种原因,一次只能轻咬一下,那么你可以事先掩盖/移出数字的各个位:
Dim b As Byte =& H5E
Console.WriteLine((b和&HF).ToString(X))'显示E(低半字节)
Console.WriteLine((b>> 4).ToString(X))'显示5(高半字节)
I've tried searching for this, but most people just want to convert hex values into their ASCII equivalents. That's not what I am looking to do.
I'm looking to see if VB.NET has a simple built-in function to do this:
Private Function NibbleToString(ByVal Nibble As Byte) As String
Dim retval As String = String.Empty
Select Case Nibble
Case &H0
retval = "0"
Case &H1
retval = "1"
Case &H2
retval = "2"
Case &H3
retval = "3"
Case &H4
retval = "4"
Case &H5
retval = "5"
Case &H6
retval = "6"
Case &H7
retval = "7"
Case &H8
retval = "8"
Case &H9
retval = "9"
Case &HA
retval = "A"
Case &HB
retval = "B"
Case &HC
retval = "C"
Case &HD
retval = "D"
Case &HE
retval = "E"
Case &HF
retval = "F"
End Select
Return retval
End Function
Is there a more elegant way to accomplish the same thing as that code?
解决方案
Use ToString
with the X
format specifier:
Dim b As Byte = &HA3
Console.WriteLine(b.ToString("X")) ' displays "A3"
Dim i As Integer = &H12AB89EF
Console.WriteLine(i.ToString("X")) ' displays "12AB89EF"
And if you did just want to do a nibble at a time for some reason then you could just mask/shift out the various bits of the number beforehand:
Dim b As Byte = &H5E
Console.WriteLine((b And &HF).ToString("X")) ' displays "E" (low nibble)
Console.WriteLine((b >> 4).ToString("X")) ' displays "5" (high nibble)
这篇关于十六进制数字(不是ASCII十六进制值)在VB.NET中字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!