C#将整数转换为小端十六进制字符串

4

我想将一个int转换为小端十六进制字符串。然后删除最后两个零。

这是我的int:

int score = 2516000;

要返回的结果:

20642600

子字符串之后的最终字符串

206426

什么是最简单的方法来实现这个?
2个回答

3
var reversedBytes = System.Net.IPAddress.NetworkToHostOrder(2516000); // 543434240
var hex = reversedBytes.ToString("x");                                // 20642600
var trimmed = hex.Substring(0, hex.Length - 2);
< p>来自其他解决方案的< code>hex.TrimEnd('0')方法将削去所有尾随零,而不仅仅是最后2个。

我相信这就是意图;只是看起来这个例子只有两个。我运用我的心灵力量推测所有的尾随零都是有意的。然而,这些力量并不完美,如果提问者表示需要限制修剪的影响,我很乐意改变我的答案。 - codekaizen
请注意,您的解决方案修剪所有尾随字符,而不管它们是“0”还是其他字符。 - codekaizen
哦,我刚注意到是凯文·弗雷。你好。我是你的作品的粉丝。我想有机会和你谈谈它。 - codekaizen
谢谢,我没有考虑到可能存在超过2个尾随零的情况! - user1954141
如果“hex”字符串长度小于2,则会引发异常。 - codekaizen

1
var reversedBytes = System.Net.IPAddress.NetworkToHostOrder(2516000); // 543434240
var hex = reversedBytes.ToString("x");                                // 20642600
var trimmed = hex.Substring(hex.Length >= 2 
                                ? hex.Length - 2 
                                : hex.Length);                        // 206426

编辑:修正了trimmed以符合用户请求的澄清。


我应该再具体一点...不过凯文说得对。我希望长度恰好为6个字符,只需去掉最后两个零即可。 - user1954141
啊,我输了!我的心灵力量让我失望了! - codekaizen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接