ALU,双精度和整数
ALU, double and int
有时候写代码,遇到这样的情况
(double)Number1/(int)Number2 //division of a double type varible by a int one.
对我来说(而且我想,对你们所有人来说或多或少)而且我永远不知道如果我重写 (double) over (int) 会发生什么。
(double)Number1/(double)Number2
性能一样吗?精度呢?以及执行它所花费的时间......变化?编译器是否在一般情况下(如果可以这样说)编写相同的二进制文件。一世。例如,exe 文件?被调用的ALU算子有变化吗?
我相信正式的答案将取决于机器、编译器和语言的体系结构以及更多的东西。但是......在这些情况下,如何了解 "my code" 中会发生什么以及哪种选择会更好(如果存在明显差异)?
谢谢大家的回复!
精度可以不同。
例如,如果 Number2
最初是 double
,则在除法之前将其转换为 int
和 (int)Number2
会通过截断丢失大量信息二进制小数点后的任何位,并截断任何不适合 int
.
的整数位
有时候写代码,遇到这样的情况
(double)Number1/(int)Number2 //division of a double type varible by a int one.
对我来说(而且我想,对你们所有人来说或多或少)而且我永远不知道如果我重写 (double) over (int) 会发生什么。
(double)Number1/(double)Number2
性能一样吗?精度呢?以及执行它所花费的时间......变化?编译器是否在一般情况下(如果可以这样说)编写相同的二进制文件。一世。例如,exe 文件?被调用的ALU算子有变化吗?
我相信正式的答案将取决于机器、编译器和语言的体系结构以及更多的东西。但是......在这些情况下,如何了解 "my code" 中会发生什么以及哪种选择会更好(如果存在明显差异)?
谢谢大家的回复!
精度可以不同。
例如,如果 Number2
最初是 double
,则在除法之前将其转换为 int
和 (int)Number2
会通过截断丢失大量信息二进制小数点后的任何位,并截断任何不适合 int
.