从long long int中减去一个int

时间:2012-12-20 21:55:13

标签: c++ casting integer long-integer

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

  2. 如果我不能:我需要存储的数字大于存储在int中的数字,我不想使用double或{ {1}}因为我需要整数,我该怎么办?我不想使用所有float。有没有办法将long long int投射到int以便我可以进行减法?

3 个答案:

答案 0 :(得分:5)

是的,你可以。为了减法,int将由通常的算术转换转换为long long int,以便两个操作数具有相同的整数转换等级,结果将也是long long int

§5/ 9涵盖了这一点:

  

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

     

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

long long int的排名大于int的排名。

答案 1 :(得分:1)

是的,您可以从int中减去long long int。您将不需要任何显式演员表,因为int将自动加宽。

答案 2 :(得分:1)

  1. 是;结果是long long(直到您将其转换为其他内容;实际上,它是long long,但您可以将结果转换为其他类型。)

  2. N / A