1
  1. 我可以intlong long int变量中减去变量吗?

  2. 如果我不能:我需要存储比可以存储在 a 中的数字更大的数字int,并且我不想使用 adouble或者float因为我需要整数,我该怎么办?我不想使用所有long long int. 有没有办法将inta 转换为 along long int以便我可以进行减法?

4

3 回答 3

6

是的你可以。将int通过通常的算术转换转换为 along long int以进行减法,因此两个操作数具有相同的整数转换等级,结果也将是 a long long int

§5/9 涵盖了这一点:

许多期望算术或枚举类型的操作数的二元运算符会以类似的方式导致转换和产生结果类型。目的是产生一个通用类型,这也是结果的类型。这种模式称为通常的算术转换,其定义如下:

[...]
如果两个操作数都具有有符号整数类型或都具有无符号整数类型,则具有较小整数转换等级的类型的操作数应转换为具有较大等级的操作数的类型。
[...]

的等级long long int大于 的等级int

于 2012-12-20T21:56:48.393 回答
1

是的,您可以int从 a 中减去 a long long int。你不需要任何明确的演员表,因为它int会自动加宽。

于 2012-12-20T21:56:20.193 回答
1
  1. 是的; 结果是 a long long(直到您将其转换为其他类型;事实上,它是 along long但您可能会将结果转换为不同的类型)。

  2. 不适用。

于 2012-12-20T21:56:21.893 回答