使用权力执行计算

时间:2013-10-10 12:27:52

标签: c

我说我有两个变量如下:

CLOCK_RATE_A =2;
CPU_TIME_A = 10;

下面这段代码是否允许我执行10 *(2 * 10 ^ 9)的计算并将结果分配给一个新变量?

CLOCK_CYCLES_A = CPU_TIME_A * (CLOCK_RATE_A * pow(10, 9));

1 个答案:

答案 0 :(得分:0)

这取决于您的数据类型。如果pow 标准C库pow函数并定义为返回int,而您的其他类型为int则会溢出某些平台上的int类型。

(请注意,pow(10, 9)非常接近32位平台上的int限制。)

但是,如果按照标准实现pow(即返回浮点类型),那么表达式

CPU_TIME_A * (CLOCK_RATE_A * pow(10, 9))

将以浮点计算,您应该将CLOCK_CYCLES_A设置为double类型,或者如果您的平台和编译器有一个,则转换为64位整数。