我有一些像这样的源代码:
If p.Type = &H1 Then
v = p.Value(0).ToString()
ElseIf p.Type = &H2 Then
我想让函数将每个'p.Type'打印到控制台(测试前),但是它们打印成简单的数字(1134或56等)。 Intellisense告诉我& H1是无符号整数,p.Type被声明为short。 我如何让Console.Writeline以&符号和H?
的格式显示它们提前谢谢。
Friend Function DisplayHexNumber(ByVal inputvalue As UInt32, Optional ByVal asbasic As Boolean = True) As String
Dim bulb As String = "Error"
Try
bulb = Hex(inputvalue)
If asbasic = True Then
bulb = "&H" & bulb.ToString
Else
bulb = "0x" & bulb.ToString.PadLeft(4, "0")
End If
Catch ex As Exception
End Try
Return bulb
End Function
答案 0 :(得分:1)
没有“与&符号和H”的格式。这就是VB如何表示十六进制文字。要说你想要“带有&符号和H的格式”中的那些数字就像是说你想要一个带有双引号格式的String
。如果您想将整数(Byte
,Short
,Integer
,Long
)转换为十六进制格式的String
而不是十进制格式,那么您只需将使用“x”或“X”说明符,例如
Dim text = number.ToString("X")
我可能想到你想要添加'& H'前缀的唯一原因是你生成VB代码。如果这就是你正在做的事情,那么你就可以用与其他任何地方完全相同的方式连接两个Strings
。除此之外,如果你想要正确识别一个十六进制数字,那么你应该在它前面添加'0x',这就是在基于C语言(C ++,Java,C#等)中完成它的方式,因为它是如何在数学中完成的。
答案 1 :(得分:0)
我相信这可能就足够了。
& H是在某些语言中指定数字为十六进制的一种方法,例如Visual BASIC; H不是数字本身的一部分。
我真的怀疑你需要这部分,但是:
应该有许多内置的方法来转换您正在使用的语言中的数字格式。如果没有,您可以自己转换它:
假设最重要的数字是第一个,最低有效数字是最后一个(big-endian),我相信在Visual BASIC中是真的:
result = 0
和power = 1
。power
;通过答案递增result
。power
乘以16。