当数字以U结尾时,这是什么意思

jtm*_*jtm 5 c literals

如在此代码中:

int nx = (int)((rev3[gx]) / 193U);
Run Code Online (Sandbox Code Playgroud)

在193年底与U有什么关系?

Dir*_*irk 6

uIS unsigned,即:1int值1,并且1uunsigned int值1.

  • 在这种情况下,它的效果是,如果`rev3 [gx]`是一个int,因此可能是负数,它将在被除以193之前转换为`unsigned`.在我的机器上`(int)( -1/193)`是0,而`(int)( - 1/193U)`是22253716.但是如果`rev3 [gx]`是有符号整数类型*大于*,那么U对于没有区别结果:`(-1LL/193U)==(-1LL/193)`,都是long long类型.得爱他们整数推广规则. (3认同)