问题标题:
C,%u代表什么代表无符号整数是不是我定义a=-1,输出是调用%u,输出的结果是1呢?我运行出来是一个很大的数
问题描述:
C,%u代表什么
代表无符号整数是不是我定义a=-1,输出是调用%u,输出的结果是1呢?
我运行出来是一个很大的数
费晓明回答:
目前的编译器一般int为32位的,所以-1用%u输出为4294967295,如果你是这样写的unsigneda=-1;其实是两步,第一步:unsigneda;第二步:a=-1;因为a为unsigned型的,所以-1会先强制转换为unsigned型,-1在内存中是1111111111111111111111111111111共32个1,因为按%u读取,所以为2^32-1=4294967295
点击显示
其它推荐
热门其它推荐