三个问题
1:
0和-0在计算机中的存储
|-0|=(00000000)原码
即取该数绝对值后的二进制数,计算机中对数据的存储是按补码形式存储的
那么就要把原码先转换成反码
即按位取反得到-0=(11111111)反码
再把反码加1得到补码 ,所以-0=(00000000)补码。
2:
int i = -20;
unsigned j = 10;
i+j = ?
在运算时会隐含的进行类型转化,低类型向高类型转换,比如,float和double型的浮点数数进行运算,会自动将float型转换成double型,再进行运算。结果也是高类型的。
3:
#include <stdio.h> int main() { unsigned i; for(i=9;i>=0;i--) printf("%u\n",i); }
死循环,因为无符号数没有负数,恒大于0!