目前的编译器一般int为32位的,所以-1用%u输出为4294967295,如果你是这样写的unsigned a=-1;其实是两步,第一步:unsigned a;第二步:a=-1;因为a为unsigned型的,所以-1会先强制转换为unsigned型,-1在内存中是1111111111111111111111111111111共32个1,因为按%u读取,所以为2^32-1=4294967295
以上是我从百度知道上找的,现在有俩问题请教各位,第一个2^32中的2是代表二进制么 第二个 为什么要减去1.I