首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#将大于Int64的数字转换为HexaDecimal

C#将大于Int64的数字转换为HexaDecimal
EN

Stack Overflow用户
提问于 2012-04-19 03:07:53
回答 3查看 3.2K关注 0票数 4

我正尝试在C#中将一个大数字(例如: 9407524828459565063)转换为十六进制(例如: 828E3DFD00000000)。

问题是这个数字大于Int64的最大值。

我到处寻找,但找不到一个可行的解决方案。

这里有人帮忙吗?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-19 03:10:57

我会使用System.Numerics.BigInteger类来做这件事。确切的解决方案取决于您拥有此数字的格式:字符串、双精度、其他。

如果字符串(s):

代码语言:javascript
复制
var bigInt = BigInteger.Parse(s);
var hexString = bigInt.ToString("x");

如果为双精度(d):

代码语言:javascript
复制
var bigInt = new BigInteger(d);
var hexString = bigInt.ToString("x");

..。等等。

票数 9
EN

Stack Overflow用户

发布于 2012-04-19 03:12:17

也许:

代码语言:javascript
复制
BigInteger b = 9407524828459565063;
var hex = b.ToString("X2");

代码语言:javascript
复制
ulong l = 9407524828459565063;
var hex = l.ToString("X2");
票数 3
EN

Stack Overflow用户

发布于 2012-04-19 03:11:38

如果您使用的是.NET 4.0,则可以查看BigInteger类:

http://msdn.microsoft.com/en-us/library/system.numerics.biginteger.aspx

代码语言:javascript
复制
  BigInteger bi = new BigInteger();
  bi = 9407524828459565063;
  string bix = bi.ToString("X");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10216227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档