版权声明:未经允许,禁止转载. https://blog.csdn.net/Loongstyle/article/details/81613275
原反补:
正数:原码=反码=补码
负数:反码=原码的所有位(符号位除外)取反
补码=反码+1
一个字节的取值范围为什么是-128~127呢:
一个字节有8位,第1位是符号位,1代表负数,0代表正数。
所以一个字节:
最小正数二进制是0000 0000=0
最大正数二进制是0111 1111 = 64+32+16+8+4+2+1=127
最大负数二进制是1111 1111 = -1
最小负数二进制是1000 0000→ 反码:1111 1111→ 补码: - {(1+2+4+8+16+32+64)+1} =-(127+1)=-128
8位一共存储2^8=256个数,由于计算机中0没有正负之分,所以存的数值为:-128 —— -1 和 0 —— 127
int取值范围:
int占四个字节,32位
数据 | 十进制 | 十六进制 | 二进制 |
---|---|---|---|
最小正数 | 0 | 0 | 0000 0000 0000 0000 0000 0000 0000 0000 |
最大正数 | 2147483647 | 7FFF FFFF | 0111 1111 1111 1111 1111 1111 1111 1111 |
最小负数 | -2147483648 | 8000 0000 | 1000 0000 0000 0000 0000 0000 0000 0000 |
最大负数 | -1 | 7FFF FFFF | 1111 1111 1111 1111 1111 1111 1111 1111 |