如何在 C# 中将大十进制数转换为十六进制(例如:588063595292424954445828)
该数字大于 int
& long
,但可以容纳在Decimal
中。 但普通的 ToString
或 Convert
方法不适用于 Decimal
。
The number is bigger than int
& long
but can be accomodated in Decimal
. But the normal ToString
or Convert
methods don't work on Decimal
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我相信这会在返回任何内容的情况下产生正确的结果,但可能会拒绝有效的整数。 我敢说,这可以通过一些努力来解决......(哦,目前对于负数也会失败。)
I believe this will produce the right results where it returns anything, but may reject valid integers. I dare say that can be worked around with a bit of effort though... (Oh, and it will also fail for negative numbers at the moment.)
手动做吧!
http://www.permadi.com/tutorial/numDecToHex/
Do it manually!
http://www.permadi.com/tutorial/numDecToHex/
我必须同意 James 的观点 - 手动执行 - 但不要使用 base-16。 使用基数 2^32,并一次打印 8 个十六进制数字。
I've got to agree with James - do it manually - but don't use base-16. Use base 2^32, and print 8 hex digits at a time.
我想一种选择是继续从中取出块并转换单个块? 一些 mod/division 等,转换各个片段...
那么:您期望什么十六进制值?
这里有两种方法...一种是使用十进制的二进制结构;另一种是使用十进制的二进制结构。 一个人手动完成。 实际上,您可能想要进行测试:如果 位[3] 为零,则以快速方式进行,否则 手动进行。
I guess one option would be to keep taking chunks off it, and converting individual chunks? A bit of mod/division etc, converting individual fragments...
So: what hex value do you expect?
Here's two approaches... one uses the binary structure of decimal; one does it manually. In reality, you might want to have a test: if bits[3] is zero, do it the quick way, otherwise do it manually.