一个字节为什么存的值是-128到127,int取值范围怎么算的?

版权声明:未经允许,禁止转载. 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

猜你喜欢

转载自blog.csdn.net/Loongstyle/article/details/81613275
今日推荐