在VB.NET中将十六进制值存储在变量(Dim xx为"Hex")中

Jon*_*an. 2 .net vb.net variables hex

如何在变量中存储十六进制数而不变为小数?

或者我必须将其存储为字符串或整数?

Jon*_*eet 5

我想你误解了数字的运作方式.

数字本身不是十六进制,十进制或二进制 - 这只是它们的表示,无论是在代码中还是在内存中.1

将5和5加在一起时得到的是10,无论你将其格式化为10还是&H0A.

所以这些陈述完全相同:

 Dim x As Integer = 16
 Dim x As Integer = &H10
Run Code Online (Sandbox Code Playgroud)

两者都将相同的值放入变量中.

如果您想稍后将该值格式化为十六进制,那么您应该这样做 - 例如使用"x"格式说明符.但值本身不是十六进制或十进制.

Dim y As Integer = &H23
Console.WriteLine(y) ' Prints 35
Console.WriteLine(y.ToString("x")) ' Prints 23
Run Code Online (Sandbox Code Playgroud)

编辑:如果你真的想这样做,你总是可以创建自己的结构,在其构造函数中取一个整数值并覆盖ToString以十六进制格式化它.我强烈建议你不要这样做.


1诚然,代表可以显着影响你可以用数字什么以及你会得到什么结果 - 从Double和之间的差异可以看出Decimal.我们暂时将其排除在等式之外.