int a=65535,int b=-1,printf("%d,%o,%x,%u", a, a, a, a); printf("%d,%o,%x,%u", b, b, b, b);结果

日期:2011-12-06 13:44:52 人气:2

int a=65535,int b=-1,printf("%d,%o,%x,%u", a, a, a, a); printf("%d,%o,%x,%u", b, b, b, b);结果

int是16位有符号整型,正数在计算机中以原码方式存储,负数则用补码形式存储。 -1是负数,以补码形式存储,即0xffff 65535的原码也是0xffff 所以有这样的结果也就不奇怪了。 补码:保持符号位不变,其他位按位取反(即反码)再加一,即可得到该数的补码
    A+
热门评论