【发布时间】:2015-12-01 15:25:26
【问题描述】:
我需要取一个整数值并对其进行转换,以便当它以十六进制表示时,数字是相反的。例如:
Dim a As Integer = &H4321
Dim a_changedorder As Integer = ReverseHexDigits(a)
Console.Writeline(a_changedorder.ToString("X4")) ' Should output 1234
我怎样才能实现像这样工作的ReverseHexDigits 方法?
作为第二个示例,&H4F2A 应该变为 &HA2F4。
【问题讨论】:
-
dim a as Integer = 0x4321不会编译,因为这不是 VB 中指定十六进制的方式:Dim a As Integer = &H4321 -
您必须通过将变量视为字符串来执行这些修改。要获取整数的十六进制形式(您要修改的字符串),您可以使用函数
Hex。 -
How can I change the order of the numbers它是一个数字,您实际上是在更改 值。当您分配&H4321时,请查看a的值,它应该是 10 中的 17,185 -
@Plutonix 也可以更改原始十六进制形式的数字顺序。这会有点奇怪,尽管 OP 可能想要创建某种加密。
-
你不是很清楚。都有些什么样的规矩?在您的示例中,您似乎暗示您想要完全反转所有的半字节,但只反转低位单词中的半字节。高字中的半字节是不是也颠倒了,但字却保留在原位?还是单独留下高词?由于您无法解释您的意思,也许了解您需要这样做的原因会有所帮助。
标签: .net vb.net string hex endianness