【求负数的内存表示】
1.求相应正数
2.按位取反
3.加1
【例】
-1 | -2 | -127 | -128 | |
---|---|---|---|---|
相应正数 | 00000001 | 00000010 | 01111111 | 10000000 |
按位取反 | 11111110 | 11111101 | 10000000 | 01111111 |
加1 | 11111111 | 11111110 | 10000001 | 10000000 |
-1的存储方式(补码) | 11111111 | 11111110 | 10000001 | 10000000 |
【根据计算机内存表示求数】
1.减1
2.按位取反
3.加负号
11111111 | 11111110 | 10000001 | 10000000 | |
---|---|---|---|---|
减1 | 11111110 | 11111101 | 10000000 | 01111111 |
按位取反 | 00000001 | 00000010 | 01111111 | 10000000 |
加负号 | -1 | -2 | -127 | -128 |
【变量类型取值范围】
char:-128~127 (-2^7 ~ 2^7-1 共2^8个)
unsigned char:0-255 (0~2的8次方-1 共2^8个)
short: -2的15次方 ~ 2的15次方-1 共2的16次方个
unsigned char :0~2的16次方-1 共2的16次方个