java中float与double的区别,混杂IEEE75计算

看到了float(IEEE75)与long(8421码)同样占4个字节,然而储存数值有差别,就想自己总结下,参考了网上的一些资源

1、变量类型不同

float属于单精度型浮点数据。

double属于双精度型浮点数据。(默认用double)

2、表达式指数位不同(IEEE75标准)

float的表达式为1bit(符号位)+8bits(指数位)+23bits(尾数位)

double的表达式为1bit(符号位)+ 11bits(指数位)+ 52bits(尾数位)

3、占用内存空间不同

float占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38(科学计数法)。

double占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308。

4、有效位数不同

float只能提供8位有效数字。

double可提供16位有效数字。

参考题目:

        float型数据通常用IEEE754单精度浮点数格式表示。若编译器将float型变量x分配到一个32位浮点寄存器FR1中,且x=-8.25,则FR1的内容是()。

        答案:  C104 0000H  (H16进制后缀,前缀0x)

 

float型数据通常用IEEE75单精度浮点数格式表示:

三部分组成:符号位、阶码、尾数;

1.符号位:

               第31位(0-31)  正数--0        负数--1      (二进制中最右侧为第零位,首位为符号位)

2.阶码:

           第30位----第23位(共8位)计算:将实数转化为二进制的指数表示形式,形如 a*2^n;a的取值范围应在在1~2之间,阶码 = n + 127,最后将其表示成二进制形式

3.尾数:

           第22位----第0位(23bits)

-8.25:

1.符号位 = 1;

2. (8.25)10 = (1000.01)2 = 1.000 01 * 2^3;        n = 3        阶码    =    3+127 = (130)10 = ( 100  0001  0)2

//  其中)10 )2分别代表10进制,2进制位于右下角标,编辑器显示不出来,这里直接将十进制整数和小数部分分别转换成二进制,再通过小数点位移数确定指数n为3,上述参数a的小数部分为尾数部分

3.尾数 : 000 0100  0000 0000 0000 0000

最终结果 : 1100 0001 0000 0100 0000 0000 0000 0000

                    1           100 0001 0         000 0100 0000 0000 0000 0000

                  符号位        阶码                                    尾数

                 十六进制: 1100 0001 0000 0100 0000 0000 0000 0000

                                        c      1        0       4       0      0        0       0

 

附:在mysql中float(m,d)m表示的是最大长度,d表示的显示的小数位数。double是浮点计算(容易产生误差),decimal是定点计算(字符串储存)

参考:

https://zhidao.baidu.com/question/263406819.html

https://www.nowcoder.com/questionTerminal/5325c6f7b5ed43bba65ea5c656296332?orderByHotValue=1&mutiTagIds=569&page=1&onlyReference=false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值