gpt4 book ai didi

.net - .NET 十进制的二进制表示

转载 作者:行者123 更新时间:2023-12-02 20:33:55 29 4
gpt4 key购买 nike

.NET decimal 类型如何在内存中以二进制表示?

我们都知道 float 是如何存储的以及因此不准确的原因,但除了以下内容之外,我找不到任何有关十进制的信息:

  1. 明显比 float 更准确
  2. 占用 128 位内存
  3. 2^96 + 符号范围
  4. 数字中有效数字总数为 28(有时 29?)

有什么办法可以解决这个问题吗?我体内的计算机科学家需要答案,但经过一个小时的尝试研究后,我找不到答案。似乎要么有很多浪费的部分,要么我只是在脑子里想象出了错误。有人可以解释一下吗?

最佳答案

Decimal.GetBits获取您想要的信息。

基本上,它是一个 96 位整数作为尾数,加上一个符号位,再加上一个指数来表示将其向右移动多少小数位。

因此,要表示 3.261,尾数为 3261,符号位为 0(即正数),指数为 3。请注意,小数并未(故意)标准化,因此您也可以/em> 例如,用尾数 32610 和指数 4 表示 3.2610。

我在关于 decimal floating point 的文章中有更多信息.

关于.net - .NET 十进制的二进制表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3801440/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com