我看过,默认情况下,十进制文字是签名的。
为了简单起见,假设int可以持有的值是整数- 128 ,127,而long可以容纳整数128。现在,如果我编码文字-128,会发生什么?我所知道的是,这里的文字只是‘128’,它不适合一个int,而是会进入一个long!还是一元减号操作符做了其他的事情?
那么,一元减号是如何处理整数的呢?
发布于 2019-11-04 06:09:02
整数文字的类型是第一种类型,从类型列表中可以匹配该值,这取决于使用了哪个数字基和哪个整数后缀。
当使用十进制而没有后缀时,可能的类型是int、long int和long long int。如果值(忽略减号)适合于long,而不适合于int,则该值的类型为long。
在确定类型后,将以正常方式应用一元减号运算符。将一元减号应用于long会导致long (即使结果可能适合int)。
https://stackoverflow.com/questions/58687940
复制相似问题