c# - 如何在 C# 中将大十进制数转换为十六进制数(例如 : 588063595292424954445828)

标签 c# decimal hex type-conversion

数字大于 int & long 但可以容纳在 Decimal 中。但是普通的 ToStringConvert 方法不适用于 Decimal

最佳答案

我相信这会在返回任何内容时产生正确的结果,但可能会拒绝有效的整数。我敢说这可以通过一些努力来解决......(哦,目前它也会因负数而失败。)

static string ConvertToHex(decimal d)
{
    int[] bits = decimal.GetBits(d);
    if (bits[3] != 0) // Sign and exponent
    {
        throw new ArgumentException();
    }
    return string.Format("{0:x8}{1:x8}{2:x8}",
        (uint)bits[2], (uint)bits[1], (uint)bits[0]);
}

关于c# - 如何在 C# 中将大十进制数转换为十六进制数(例如 : 588063595292424954445828),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/221154/

相关文章:

c# - 匹配字符串之间有空格并连接具有重叠空格的模式

c# - 如何从类型变量中获取枚举的默认值

c# - 通过 xaml 设置用户控件自定义依赖属性

c# - 我是实现自己的 Dispose() 还是对 .NET 3.5 RNGCryptoServiceProvider 使用 Finalize()?

C# 将字符串转换为 double /十进制并返回字符串,保留尾随零,为千位添加逗号

java - 如何在java中将十六进制字符串转换为long?

delphi - 十六进制到十进制转换器 (ESN Algo)

将十进制转换为字符/字符串

c++ - 将 4 字节十六进制字符串转换为整数

java - C 和 Java 对十六进制值的按位运算不匹配