iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java中float在内存中的存储方式是什么
  • 384
分享到

Java中float在内存中的存储方式是什么

2023-06-02 16:06:37 384人浏览 八月长安
摘要

本篇内容介绍了“Java中float在内存中的存储方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!最近在讲Java基础,讲到数据类型

本篇内容介绍了“Java中float在内存中的存储方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

最近在讲Java基础,讲到数据类型的转换,提到整数类型长字节类型数据放到短字节类型数据中时,由于字节数不够,会截断数据,所以需要程序员手动强制类型转换,例如将int型的数据放到byte类型中。

后来学生提出一个问题,为什么float只有4个字节,而long有8个字节,将一个long数据放入到一个float中时不需要强制转换,而将float放到long中却需要强制转换呢?

要理解这个问题,首先我们要知道float中可以存储小数,而long只能存储整数,所有float的数据放到long里需要强制转换。

至于为什么long放到float里不需要强制转换,需要了解float存储数据的机制,float中存储数据的时候是以科学计数法的方式计数的,所有能够存储的整数大小要超过long类型,于是long数据放到float中是没有问题的,只是可能会误差很大而已。

具体来说,float中存储一个数字时,是按照这样做的:

float有4个字节,即32个bit

32         31          30-24      23-1

符号位   指数符号位      指数      数字

将10进制的小数转换成2进制的小数。

将小数点移动(左移或右移n位)到第一个数字1后,得到一个类似1.01001…这样的一个二进制小数m。

根据小数的正负将第32位(最高位)的符号位填充,正数为,负数为1。

根据移动的方向确定第31位的值,如果向左移则为1,向右移或者不动为。

如果是向左移,将n-1后转换成2进制,并在左边补零到7位长度,填充到30-24位的指数位上。如果是不动或向右移,将n转换成2进制,并在左边补零到7位长度,并每一位求反填充到30-24位。

将数字m去掉整数位和小数点后,截断23位长度填充到23-1位。

例如:数字12.1

转换成2进制后为:1100.0001100110011001100110011001100110011001100110011

将数字往左移3位为:1.1000001100110011001100110011001100110011001100110011

因为数字12.1为正数,所以float的第32为。

因为往左移,所以第31位为:1

因为往左移了3位,3-1=2,所以第30-24位为:0000010

最后,将小数点后面的数字截断23位,所以第23-1位为:1000001 10011001 10011001

最终12.1表示成2进制在内存中保存为:0  1  0000010  1000001 10011001 10011001

“Java中float在内存中的存储方式是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Java中float在内存中的存储方式是什么

本文链接: https://www.lsjlt.com/news/230661.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中float在内存中的存储方式是什么
    本篇内容介绍了“Java中float在内存中的存储方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!最近在讲Java基础,讲到数据类型...
    99+
    2023-06-02
  • C语言详解float类型在内存中的存储方式
    目录1.例子2.浮点数存储规则1.例子 int main() { int n = 9; float *pFloat = (float *)&n; ...
    99+
    2022-11-13
  • Java中数组的存储方式是什么
    在Java中,数组是一种引用类型,它的存储方式是连续的,所有的元素在内存中是按照顺序存放的。数组的存储空间是在堆内存中分配的,而数组...
    99+
    2023-10-18
    Java
  • C语言浮点型数据在内存中的存储方式是什么
    本篇内容介绍了“C语言浮点型数据在内存中的存储方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、思考一下咱们先上一盘开胃菜,试试看...
    99+
    2023-07-05
  • Java中Spring容器的存储方式是什么?
    Spring是Java开发中的一个重要框架,它提供了很多功能,其中最重要的就是IOC(Inversion of Control)和AOP(Aspect Oriented Programming)两个核心技术。而Spring容器是实现这两种...
    99+
    2023-11-02
    存储 spring 容器
  • Java中map内部存储方式解析
    Map,即映射,也称为 键值对,有一个 Key, 一个 Value 。比如 Groovy 语言中,  def  map = ['name' : 'liudehua', 'age' : 50 ] ,则 map[ 'name...
    99+
    2023-05-31
    java map ava
  • C语言中数据在内存中是怎么存储的
    本篇文章为大家展示了C语言中数据在内存中是怎么存储的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。数据类型常见的数据类型常见的数据类型字节char字符数据类型1short短整型2int整形4long...
    99+
    2023-06-22
  • java数组内存分配的方式是什么
    在Java中,数组是一个对象,它在内存中被分配为连续的内存块。当我们创建一个数组时,Java虚拟机(JVM)会在堆上分配内存来存储数...
    99+
    2023-10-24
    java
  • 计算机中字符型数据在内存中存储形式是怎么样的
    这篇文章将为大家详细讲解有关计算机中字符型数据在内存中存储形式是怎么样的,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。字符型数据在内存中的存储形式是ASCII码。字符型数据是将一个字符常量放到一个字符变量...
    99+
    2023-06-15
  • Java中异步编程的关键字和存储方式是什么?
    随着互联网的普及和应用场景的不断扩大,异步编程逐渐成为开发人员必须掌握的技能之一。Java作为一门流行的编程语言,也支持异步编程。在本文中,我们将探讨Java中异步编程的关键字和存储方式。 一、异步编程的概念 异步编程是一种编程方式,其中...
    99+
    2023-07-25
    异步编程 关键字 存储
  • C语言中数据存储方式是什么
    这篇文章主要介绍“C语言中数据存储方式是什么”,在日常操作中,相信很多人在C语言中数据存储方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言中数据存储方式是什么”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-08
  • Android中将Bitmap对象以PNG格式保存在内部存储中的方法
    在Android中进行图像处理的任务时,有时我们希望将处理后的结果以图像文件的格式保存在内部存储空间中,本文以此为目的,介绍将Bitmap对象的数据以PNG格式保存下来的方法。1、添加权限由于是对SD card进行操作,必不可少的就是为你的...
    99+
    2023-05-30
    android bitmap roi
  • java中内存泄漏和内存溢出是什么
    内存泄漏(Memory Leak)是指在程序运行过程中,因为不正确的内存管理而导致一部分内存无法被回收的现象。当程序中的对象不再被使...
    99+
    2023-08-25
    java
  • C语言中数据是如何存储在内存中的
    目录前言‍数据类型介绍‍整形数据在内存中存储‍浮点型数据在内存存储前言 在计算机内存中,数据的存储方式都是以0和1的形式存储,也就是二进制的形式,数据是如何向...
    99+
    2022-11-13
  • java方法调用在内存中的执行过程是什么
    这篇“java方法调用在内存中的执行过程是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java方法调用在内存中的执行过...
    99+
    2023-07-02
  • Java中什么是内存分配
    本篇文章给大家分享的是有关Java中什么是内存分配,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言...
    99+
    2023-06-14
  • html5类型的存储方式是什么
    这篇文章主要介绍了html5类型的存储方式是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇html5类型的存储方式是什么文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2022-10-19
  • C语言中字符串数据在C中的存储方式是什么
    这篇文章主要介绍“C语言中字符串数据在C中的存储方式是什么”,在日常操作中,相信很多人在C语言中字符串数据在C中的存储方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言中字符串数据在C中的存储方式...
    99+
    2023-07-02
  • Spring的存储方式与获取方式是什么
    本篇内容介绍了“Spring的存储方式与获取方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!存储方式(注解)使用注解的方式存储业务对...
    99+
    2023-07-02
  • C语言数据在内存中是怎样存储的
    这篇文章主要介绍“C语言数据在内存中是怎样存储的”,在日常操作中,相信很多人在C语言数据在内存中是怎样存储的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言数据在内存中是怎样存储的”的疑惑有所帮助!接下来...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作