十六进制数字(不是ASCII十六进制值)在VB.NET中字符串 [英] Hex number (not ASCII hex value) to string in VB.NET

查看:372
本文介绍了十六进制数字(不是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 X 格式说明符

  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中字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆