java基础之数据类型
Java基础之数据类型
其他进制to十进制
看图
十进制转to其他进制
看图
类型转换
|
|
为什么Java byte 类型的取值范围是-128~127
概念:负数的补码是该 数 绝 对 值 的 原 码 按 位 取 反 ,然 后 对 整个数 加 1
步骤:
1.确定byte是1个字节,也就是8位
2.最大的应该是
0111 1111
,因为第一位是符号位,0表示正数3.最小的应该是
1000 0000
,同理,表示负数最小的(1111 1111
是最大的负数-1)4.
0111 1111
即1275.
1000 0000
按照最下面的解释为先减一,得到0111 1111
,然后按位取反得到1000 0000
,该结果为欲求负数的绝对值,所以结果是-128(和概念反着来求出该负数)
补充知识1——原码、反码、补码
在计算机内,定点数有3种表示法:原码、反码和补码
[原码]就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
[反码]表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
[补码]表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
补充知识2——补 码
Java使用补码来表示二进制数,在补码表示中,最高位为符号位,正数的符号位为0,负数为1。补码的规定如下:
对正数来说,最高位为0,其余各位代表数值本身(以二进制表示),如+42的补码为00101010
。
对负数而言,把该数绝对值的补码按位取反,然后 对整个数加1,即得该数的补码。如-42的补码为 11010110
(00101010
按位取反 11010101
+1=11010110
)
用补码来表示数,0的补码是唯一的,都为00000000
。(而在原码 ,反码表示中 ,+0和-0的表示是不唯一的,可参见相应的书籍)。而且可以用 111111
表示 -1的 补码(这也是补码与原码和反码的区别)。