关于c#:Base-2和Base-10在速度和性能上有什么区别?

What is the difference between Base-2 and Base-10 in the speed and performance?

本问题已经有最佳答案,请猛点这里访问。

我知道base-2base-10的基本定义,但我想知道它们在程序性能和速度上有什么区别。

例如:在C#中,数据类型doublebase-2,数据类型decimalbase-10。因此,double的计算速度非常快,而decimal的计算速度比两倍慢10倍。

我不明白为什么会这样,所以请任何人向我解释并提前感谢:)


性能差异的原因不是因为数字基数的差异,而是硬件在执行计算时的可用性。

.net中的double是按照IEEE-754标准表示的,这意味着在大多数平台上执行double计算有很多硬件辅助。

与二进制表示不同,十进制表示是最近才出现的(标准还不到十年),因此硬件辅助的可用性仍然相当有限。这在将来可能会改变,但目前这意味着decimal中的计算需要更多的CPU周期来执行。