byte取值范围


Java中,byte在内存中占一个字节,取值范围为何是-128~127?(-2^7~2^7-1)

计算机是用二进制来表示数据的,一个字节也就是8个比特位,其中最高位表示符号位(0正1负)

故byte的取值范围为1000 0000 到 0111 1111

在Java中,是采用补码来表示数据的

正数的补码和原码相同,负数的补码是在原码的基础上各位取反然后加1

1000 000是补码,减一然后按位取反得到其原码1000 0000

(减一得 0111 1111,再按位取反得 1000 0000)

因为是负数,所以最小的byte值为-2^7=-128

0111 1111的十进制为2^7-1=127(等比序列求和)

byte是一个字节,共有2^8=256种可能性,也就是-128~127

 

其他基本数据类型同理

char没有负值,占两个字节,所以取值范围是0~2^16-1(65535)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM