数字在JVM中的表示
一、整数在JVM中的表示
1.在Java虚拟机中,整数有四种表示:
byte:8位 short:16位 int:32位 long:64位
2.原码、补码、反码
1)原码:符号位(左边第一位,0表示正数,1表示负数)加上数字的二进制表示。
2)反码:在原码的基础上,符号位不变,其余位取反。
3)补码:负数的补码-----其反码加1,正数的补码就是其原码本身。
3.使用补码作为计算机内的实际存储方式的好处:
1)可以统一数字0的表示。
2)简化整数的加减法,将其全部视为加法。
二、浮点数在JVM中的表示
1.在java虚拟机中浮点数表示有两种:
float 32位 double 64位
2.IEEE754 表示浮点数:
浮点数由符号位(1位)、指数位(8位)、尾数位(23位,根据e的取值有24位精度)表示。
sflag表示符号位,s为0时,flag为1,s为1时,flag为0。e全为0时,尾数位附加0,否则附加1。