一元减号运算符如何在C ++中处理整数文字?

问题描述 投票:0回答:1

我读到默认情况下,十进制文字是带符号的。为简单起见,假设int可以容纳的值是整数[-128,127],long可以容纳整数128。现在,如果我对文字-128进行编码会怎样?我所知道的是,这里的文字只是“ 128”,它不能放入int中,而是会放入long中!还是一元减运算符做其他事情?那么,一元减号如何与整数文字一起使用?

c++ literals
1个回答
0
投票

来自cppreference.com

整数文字的类型是该值适合的第一种类型,这取决于使用哪个数字基数和使用哪个[[integer-suffix的类型列表。

如您的示例,当使用十进制基数且不带后缀时,可能的类型为intlong intlong long int。如果该值(忽略减号)适合long,但不适合int,则该值的类型为long

确定类型后,一元减运算符将正常应用。对long应用一元减会导致long(即使结果可能适合int)。

© www.soinside.com 2019 - 2024. All rights reserved.