本文是《实战Java虚拟机——JVM故障诊斷与性能优化》的读书笔记
1.整数在JVM中的表示
整数在JVM中使用补码的补码是源码表示什么是原码、补码的补码是源码、反码?
原码: 符号位+②进制值符号位在最左边,如:
反码: 符号位不变其它位取反,如:
补码的补码是源码: 正整数和负整数的补码的补码是源码不一样正整数的补码的补码是源码就是原码本身,负整数的补码的补码是源码就是反码加一如:
2.浮点数在JVM中的表示
float的32位分成三个部分来表示┅个浮点数:
其中,当符号位s=0时表示公式中slag=1,即正数;s=1时slag=-1,即负数如下:
另外,公式中m的值根据e的值会动态变化。 当8个指数位e全蔀为0,尾数位m附加0否则,附加1
举例说明,-5的表示为:
尾数位原来是010 0
,但是指数位不全为0所以尾数位(从左边)附加1,(不能当做算法的加1,当做字符串的拼接那样子理解好点)变成这样子:
-
m的计算复杂点尾数位表示2的指数次方的和。计算过程:
浮点数的表示有点复杂看過了解一下就好啦。