C语言(数据类型):请问这段程序的输出结果为什么是-1?

2025-03-22 22:12:21
推荐回答(2个)
回答(1):

首先,这里有个前提,那就是你的编译器对unsigned long至少做4字节处理,而int做4字节处理
十进制数4294967295表示成二进制就是

11111111111111111111111111111111
也就是32个1,即对于四字节而言,全都是1
而32个1就是int型数据的-1的补码表示

回答(2):

数值溢出 所导致的