int i=-20;
unsigend j=10;
求i+j的值为多少 。写上解释
顺便给我解释下 sizeof
int和unsigned int都是4字节(32位情况下)存储
1、int和unsigned int运算时int会自动转成unsigned int 2、int和unsigned int都是4字节(32位情况下)存储,区别是int最高位是符号位,用来表示正负3、负数用补码存储,-20存储为11111111111111111111111111101100,这个东西转为unsigned int后就是一个很大的数4294967276了,所以最后结果是4294967286
转换规则:存储长度较短的转换成存储长度较长的,并且不丢失信息; 常见类型转换顺序:char 、short -> int -> unsigned -> long int -> double <- float 即运算中有double类型,则其他类型会全部转换成double类型。