浮点数指数形式 java,关于Java中的IEEE765浮点数表示法

关于Java中的IEEE765浮点数表示法

凌宇 在www.360doc.com中转帖【IEEE浮点数表示法】,经过仔细研究,终于有点心得了。

float转十六进制:

16进制浮点数的表示方法,根据IEEE的标准,分为32位和64位两种,参数分别如下:

符号位

指数位

指数偏移量

尾数位

32位

1[31]

8[23-30]

23[0-22]

127

64位

1[63]

11[52-62]

52[0-51]

1023

float

共计32位,折合4字节

由最高到最低位分别是第31、30、29、……、0位

31位是符号位,1表示该数为负,0反之。

30-23位,一共8位是指数位。

22-0位,一共23位是尾数位。

现在让我们按照IEEE浮点数表示法,一步步的将float型浮点数123456.0f转换为十六进制代码。

在处理这种不带小数的浮点数时,直接将整数部转化为二进制表示:1

11100010

01000000。

也可以这样表示:11110001001000000.0。

然后将小数点向左移,一直移到离最高位只有1位,就是最高位的1:1.11100010010000000。

一共移动了16位,在布耳运算中小数点每向左移一位就等于在以2为底的科学计算法表示中指数+1,所以原数就等于这样:1.11100010010000000

* ( 2 ^ 16

)。

好了,现在我们要的尾数和指数都出来了。显而易见,最高位永远是1,因为你不可能把买了16个鸡蛋说成是买了0016个鸡蛋吧?所以这个1我们还有必要保留他吗?好的,我们删掉他。

这样尾数的二进制就变成了:11100010010000000最后在尾数的后面补0,一直到补够23位:11100010010000000000000。

再回来看指数,一共8位,可以表示范围是0 - 255的无符号整数,也可以表示-128 -

127的有符号整数。

但因为指数是可以为负的,所以为了统一把十进制的整数化为二进制时,都先加上127,在这里,我们的16加上127后就变成了143,二进制表示为:10001111。

12345.0f这个数是正的,所以符号位是0,那么我们按照前面讲的格式把它拼起来:

0

10001111 11100010010000000000000

01000111 11110001 00100000

00000000

再转化为16进制为:47 F1 20 00,最后把它翻过来,就成了:00 20 F1 47。

==========================================================

按照IEEE浮点数表示法,将float型浮点数123.456f转换为十六进制代码。

整数部直接化二进制:100100011。

小数部的处理比较麻烦一些。

来看一下步骤:1 / 2

^1位(为了方便,下面仅用2的指数来表示位),

第1位:0.456小于位阶值0.5故为0;

2位,0.456大于位阶值0.25,该位为1,并将0.45减�

相关文档:

好久没用java,突一写起来,发现机器上没有设置环境变量,把设置方法总结一下

1. 修改/etc/profile文件

如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。

·用文本编辑器打开/etc/profile

·在pr ......

1. ActionForm中添加属性,FormFile类型对象。

private FormFile upLoadFile;

public FormFile getUpLoadFile() {

return upLoadFile;

}

public void setUpLoadFile(FormFile upLoadFile) {

this.upLoadFile = upLoadFile;

}

2. Action 中增加修改方法。

public ActionForward save(ActionMapping mapping, Action ......

原文:http://csharpindepth.com/Articles/Chapter5/Closures.aspx

第一段略。。。

大多数讲闭包的文章都是说函数式语言,因为它们往往对闭包的支持最完善。当你在使用函数式语言时,很可能已经清楚了解了什么是闭包,所以我想写一篇在经典OO语言出现的闭包有什么用处应该也是很合适的事情。这篇文章我准备讲一下C#(1� ......

//写这个程序也为了纪念王江民先生……话说当年他也是写过这个类似程序

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

public class game extends Applet implements ActionListener{

//定义变量

int num1, num2, num3, jieguo, jilu, ......

package com.sy.grasp;

import java.io.IOException;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class RegularExpression {

/**

* @param args

* @throws IOException

*/

public static void main(String[] args) throws IOException {

......

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值