十进制运算是如何计算的?

十进制运算是如何计算的?

我知道常规 CPU 会进行整数类型(例如整数)的算术运算以及位运算;FPU 会进行浮点运算。但是,我正在尝试了解如何/在哪里进行 Decimal 数据类型的算术运算(c# 示例) 在典型的处理器内部发生吗?

答案1

这是一个实现问题...您可以通过将特定代码编译为汇编来获取精确的信息请参阅此 StackExchange 文章

如果这不是一个实施问题,你可以从这里看到关于内部代表性的评论该对象由三个部分组成:

  • S = 符号位
  • I = 96 位整数
  • F = “比例因子”

该值使用如下公式计算:

value = ( S * I ) / ( 10 ^ F )

可以从这些值中获取捷径,从而轻松利用 CPU 执行的操作。编译器/库可能会实现这些捷径。

答案2

整数运算由 CPU 的一个基本功能块处理,称为算术逻辑单元或 ALU。

ALU 可以对数据执行各种整数加法、减法、乘法以及逻辑运算。

虽然该单元使用整数工作,但这并不意味着您无法进行浮点数学运算,只是它会比专用的 FPU 慢。请参阅这里了解详细信息。

相关内容