Java Byte 的取值范围大家都知道(-128 ~ 127),那么-128 和127 这两个数是怎么计算的呢?
#大学知识回顾:
概念:负数的补码是该 数绝对值的原码按位取反,然 后对整个数 加1
在计算机内,定点数有3种表示法:原码、反码和补码
[原码]就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
[反码]表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
[补码]表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
Java使用补码来表示二进制数,在 补码表示中,最 高位为符号 位 ,正 数的符号位为0,负数为1。
现在进行java Byte 取值范围分析:
1、确定byte是1个字节,也就是8位
2、对于计算机来说,二进制最大的正数是01111111 转换成十进制为:127
3、最小的负数: 10000000,即-128
二进制负数的值:取反加一,所以 10000000 的值为:
1. 取反 -> 01111111 127
2. 加一 -> 128
3. 加上符号: -128
Java/Python