c语言中的0UL或1UL是什么意思?

Python014

c语言中的0UL或1UL是什么意思?,第1张

0UL

表示

符号长整型

0

1UL

表示

无符号长整型

1

如果不写UL后缀,系统默认为:int,

即,有符号整数。

这段话没有问题。

1U提升后是1L,因此-1L<1L

对于signed类型来说,其最高位是表示正负号的,如果最高位为1,则数字为负数,且其绝对值为后面所有位的补码+1;

而对于unsigned类型来说,其最高位也是数字的一部分,因此当最高位为1时,其值是一个很大的正数。对于-1L来说,提升为UL后值为0的补码,即2^32-1UL,因此大于1UL