代码如下:
#include <stdio.h>
main(){
short i = -1;
printf("%d,%o,%x,%u\n", i, i, i, i);
}
1.-1用8进制或16进制表示都是-1;
2.但在计算机内部,占用1字节空间的情况下(字节型),-1的2进制表示为:原码[-1]=10000001;反码为:[-1]=11111110;补码为[-1]=11111111.而计算机内部数值都是以补码的形式进行标识,若以8进制表示就是3ff;16进制为ff 若将-1看成整型,那么-1的补码为1111111111111111;8进制为177777;16进制为ffff
3.所以short i=-1
原码:1000 0000 0000 0001
反码:1111 1111 1111 1110(符号位不变其余按位取反)
补码:1111 1111 1111 1111(反码+1)
八进制:1 111 111 111 111 111 (177777)
十六进制:1111 1111 1111 1111 (ffff)
dec=-1;oct=177777;hex=ffff;unsigned=2^16-1=65535;