我知道base-2
和base-10
的基本定义但是我想知道它们在性能和速度之间有什么区别一个程序。
例如:
在C#
中,数据类型double
是Base-2
,数据类型decimal
是Base-10
因此double
的计算速度非常快,而decimal
的速度比双倍慢10倍。
我不明白为什么会这样,所以请任何人向我解释并提前感谢:)
答案 0 :(得分:2)
性能差异的原因不是由于数字基础的差异,而是由于执行计算时硬件辅助的可用性。
double
in .NET is represented in the way that follows IEEE-754 standard,这意味着有大量硬件辅助可用于在大多数平台上执行shared_int
次计算。
与二进制表示不同,十进制表示有点近(标准不到十年),所以availability of hardware assistance is still rather limited。这可能在将来发生变化,但目前这意味着shared_int
中的计算需要更多的CPU周期才能执行。