当前位置: 首页 > 知识库问答 >
问题:

Long的大小为8字节,那么在Java中如何将其“提升”为float(4字节)呢?

邰勇军
2023-03-14

我读到Java中的long类型可以升级为float和double(http://www.javatpoint.com/method-overloading-in-java)。我想问长整数在JAVA中占用8字节内存,而浮点数占用4字节,那么这个提升是如何工作的?如果我们以这种方式推广,难道我们不可能面临一些数据丢失吗?

另外,值得注意的是,所有其他类型的升级都是从较小尺寸的基元数据类型升级到类似或较大尺寸的数据类型。

  • 字节转换为short、int、long、float或double
  • 从short到int、long、float或double
  • 字符转换为int、long、float或double
  • int到long、float或double
  • 长要浮动或双
  • 浮动到双倍

共有1个答案

罗智志
2023-03-14

float的表示方式与整型不同。有关浮动类型的更多信息,请阅读以下内容:https://en.wikipedia.org/wiki/single-precision_floating-point_format。细化后的内容如下所示:浮点格式由一个符号位、8位代表指数和23位代表小数部分组成。该值是这样计算的:(-1)^signbit*1.fractionalpart*2^(exponent-127)。因此,该算法允许表示比64位整数类型更大的值。

 类似资料:
  • 问题内容: 我正在从硬件设备读取8字节的数据。我需要将它们转换为数值。我想将它们转换为适合8个字节的长度。我对Java和低级数据类型操作不是很熟悉。我似乎有两个问题(除了几乎没有有关硬件的文档的事实外),这些字节期望是无符号的,所以我无法进行直接整数转换。我不确定它们是什么字节序。 任何意见,将不胜感激。 最终结束了(摘自一个星期前我可能应该已经读过的一些源代码): 问题答案: 对于字节序,请测试

  • 问题内容: 我需要将缓冲区的长度存储在4个字节大的字节数组中。 伪代码: 做到这一点的最佳方法是什么?请记住,稍后我必须将该字节数组转换回整数。 问题答案: 您可以使用以下方式将其转换为字节: 注意,这样做时可能必须考虑字节顺序。

  • 我必须在皈依前向小恩迪安下订单。 在第一种情况下,我很容易进行转换: 在第二种情况下,转换不起作用: 数字3832745171大于,但如果我试图转换为long,我也会遇到问题。 我怎么能这么做?谢谢。 尝试将字节数组转换为int/long类型。

  • 问题内容: 是否总是真的(这是我的理解是对的代名词)是个字节? 我可以依靠吗?如果不是这样,那么对于基于POSIX的操作系统是否正确? 问题答案: 除了之外,标准没有关于任何整数类型的确切大小。通常,在32位系统上为32位,在64位系统上为64位。 但是,该标准并未指定 最小 尺寸。从C标准的 5.2.4.2.1节开始: 1 以下给出的值应被适合用于预处理指令的常量表达式代替。此外,除了和之外,以

  • 我遇到了将字节字符串转换为字节数组的强制转换问题。 我有一个字符串[B@1a758cb。也就是Base64加密的String的主String"Gunjan"。这里的解密我想把加密的字节串转换成字节[]。 但是String.get字节[]不适合我。String.getBytes[]给出字节String的字节数。 我该怎么做??我是否必须迭代字节字符串中的每个字符并将其转换为字节[]?? 编辑 我使用

  • 问题内容: 我正在尝试将UTF-8中Java编码的字符串转换为ISO-8859-1。例如,在字符串“âabcd”中,“â”在ISO-8859-1中表示为E2。在UTF-8中,它表示为两个字节。C3 A2我相信。当我执行getbytes(encoding),然后使用ISO-8859-1编码的字节创建一个新字符串时,我得到两个不同的字符。â。还有其他方法可以使字符保持一致,即abcd吗? 问题答案: