黑马程序员---从头开始,回忆JAVA基础之JAVA用十六进制表示浮点数的方法
来源:互联网 发布:extjs object转json 编辑:程序博客网 时间:2024/05/21 09:54
在二进制文件中,存储数据的格式为16进制,
下面举例说明27.0f在二进制文件中怎么表示。
float
共计32位,折合4字节
由最高到最低位分别是第31、30、29、……、0位
31位是符号位,1表示该数为负,0反之。
30-23位,一共8位是指数位。
22-0位,一共23位是尾数位。
每8位分为一组,分成4组,分别是A组、B组、C组、D组。
每一组是一个字节,在内存中逆序存储,即:DCBA
27.0表示成二进制为:11011.0
用科学计数法表示为1.110110*2^4,现在我们要的尾数和指数都出来了。
尾数为:1101 10 (删除前面的第一个1,因为用科学计数法表示,二进制中第一个永远都为1,计算机在存储的时候就没有存储这个1,只存储小数点后面的位数) 不足23位,补0,就是1011 0000 0000 0000 0000 000(23位)
指数:为4 。一共8位,可以表示范围是0 ~ 255的无符号整数,也可以表示-128~127的有符号整数。但因为指数是可以为负的,所以为了统一把十进制的整数化为二进制时,都先加上127。
所以:4+127=131 变成二进制就是10000011
27.0用二进制表示就是:
加上第31位的符号位0
就是0100 0001 1101 1000 0000 0000 0000 0000
十六进制就是:41 D8 00 00
再看一个数27.5,二进制为11011.1
1.10111*2^4
尾数(小数点后的数)10111,补够23位 1011 1000 0000 0000 0000 000
指数:4,加上127,就是131,二进制1000 0011
用二进制表示就是 (符号数位1位)0 (指数位8位)1000 0011 (尾数位23位)1011 1000 0000 0000 0000 000
写成二进制标准形式:0100 0001 1101 1100 0000 0000 0000 0000
写成16进制就是41 DC 00 00
-----------------------------------------------------------------------------------------------------------
欢迎评论!
- 黑马程序员---从头开始,回忆JAVA基础之JAVA用十六进制表示浮点数的方法
- 黑马程序员---从头开始,回忆JAVA基础之正则表达式。
- 黑马程序员---从头开始,回忆JAVA基础之Eclipse快捷键
- 黑马程序员---从头开始,回忆JAVA基础之常用词汇
- 黑马程序员---从头开始,回忆JAVA基础之文件操作
- 黑马程序员---从头开始,回忆JAVA基础之反射
- 黑马程序员---从头开始,回忆JAVA基础之代理
- 黑马程序员---从头开始,回忆JAVA基础之常用类方法!
- 黑马程序员---从头开始,回忆JAVA基础之集合(一)
- 黑马程序员---从头开始,回忆JAVA基础之集合(二)
- 黑马程序员---从头开始,回忆JAVA基础之IO流(一)
- 黑马程序员---从头开始,回忆JAVA基础之IO流(二)
- 黑马程序员---从头开始,回忆JAVA基础之通信(一)
- 黑马程序员---从头开始,回忆JAVA基础之通信(二)
- Java中浮点数的正确表示
- 黑马程序员-----java基础之构造方法
- 浮点数的表示方法
- 浮点数的表示方法
- Word转换成PDF文档怎么转换
- mina框架详解
- libnet发包例子(tcp udp arp广播)
- 白话机器学习算法(二十)梯度下降算法
- 白话机器学习算法(二十一)logistic回归
- 黑马程序员---从头开始,回忆JAVA基础之JAVA用十六进制表示浮点数的方法
- 白话机器学习算法(二十二)Adaboost
- 【02】Android四大基本组件
- UML建模
- Nat回环(Lan——>Lan端口映射原理)
- 使用shape为android各种元素制作圆角
- MongoDB 聚合管道(二)(Aggregation Pipeline)
- ThreadLocal
- 常去网站