Java 基本数据类型修饰符是什么?

2024-01-04

好吧,我已经用 Java 编程三年了,现在,我认为自己非常有经验。然而,在查看 Java SE 源代码时,我遇到了一些意想不到的事情:

in class Double:

public static final double MIN_NORMAL = 0x1.0p-1022; // 2.2250738585072014E-308

public static final double MIN_VALUE = 0x0.0000000000001P-1022; // 4.9e-324

我没想到会这样,也不明白这意味着什么。如果你不知道,我指的是p and P位于这些数字之后、减法运算符之前。我知道你可以使用后缀来强制数字成为double, long, float等等,但我从未遇到过p or P。我检查了Java API http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html,但没有提及。有没有completeJava 原始数字文字修饰符列表在某处?有人认识他们吗?

作为参考,下面是我使用过或遇到过的,其中那些我无法理解的用粗体和问号(#代表各自限制内的任意数字):

后缀:

  • #= 32 位整数int
  • #L= 64 位整数long
  • #l= 另一个 64 位整数l?
  • #f= 32 位浮点float
  • #F= 另一个 32 位浮点数float?
  • #d= 64 位浮点double
  • #D= 另一个 64 位浮点数double?
  • #e#= 科学记数法
  • #E#= 另一种科学记数法?
  • #p = ?
  • #P = ?
  • 还有吗?

前缀:

  • 0b#= 二进制(以 2 为基数)文字
  • 0B#= 另一个二进制(基数 2)文字?
  • 0#= 八进制(基数 8)文字
  • #= 十进制(以 10 为基数)文字
  • 0x#= 十六进制(以 16 为底)文字
  • 0X#= 另一个十六进制(基数 16)文字?
  • 还有吗?

Other (这些有后缀或前缀吗?):

  • (byte)#= 8 位整数byte
  • (short)#= 16 位整数short
  • (char)#- 32位字符char

P 是指数。是不是资本并不重要。

根据Javadoc 为toHextString http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html#toHexString(double)(我们知道正在使用它,因为它开头为0x:

public static String toHexString(double d)返回双参数的十六进制字符串表示形式。下面提到的所有字符都是 ASCII 字符。如果参数为 NaN,则结果为字符串“NaN”。否则,结果是一个表示参数的符号和大小的字符串。如果符号为负,则结果的第一个字符为'-'('\u002D');如果符号为正,则结果中不出现符号字符。至于震级m:

  • 如果m为无穷大,则用字符串“Infinity”表示;因此,正无穷产生结果“Infinity”,负无穷产生结果“Infinity”
    无穷大产生结果“-Infinity”。

  • 如果m为零,则用字符串“0x0.0p0”表示;因此,负零产生结果“-0x0.0p0”,正零产生结果“0x0.0p0”。

  • 如果 m 是具有标准化表示的双精度值,则使用子字符串来表示有效数和指数字段。有效数由字符“0x1”表示。后跟剩余有效数字的小写十六进制表示形式。除非所有数字都为零,否则将删除十六进制表示形式中的尾随零,在这种情况下,将使用单个零。下一个,指数由“p”表示,后跟无偏指数的十进制字符串就好像通过对指数值调用 Integer.toString 生成的一样。

  • 如果 m 是具有次正规表示的双精度值,则尾数由字符“0x0”表示。后跟剩余有效数的十六进制表示形式的分数。十六进制表示中的尾随零被删除。接下来,指数由“p-1022”表示。请注意,次正规有效数中必须至少有一个非零数字。

根据JLS http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10,接受以下语法:

3.10.1. Integer Literals

IntegerTypeSuffix:

  • l
  • L

八进制数字:

  • 0 八进制数字
  • 0 下划线八进制数字

十六进制数字:

  • 0 x 十六进制数字
  • 0 X 十六进制数字

二进制数字:

  • 0 b 二进制数字
  • 0 B 二进制数字

3.10.2. Floating-Point Literals

指数指标:其中之一

  • e
  • E

FloatTypeSuffix:其中之一

  • f
  • F
  • d
  • D

十六进制有效数:

  • 十六进制数字
  • 十六进制数字。
  • 0 x 十六进制数字选择。十六进制数字
  • 0 X 十六进制数字选择。十六进制数字

BinaryExponentIndicator:其中之一

  • p
  • P

没有为这些目的指定其他单字符文字。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 基本数据类型修饰符是什么? 的相关文章

随机推荐

  • 在python中查找列表内的子列表

    我有一个数字列表 l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • 删除 JTable 中的单元格编辑器边框 (Windows LaF)

    我有一个基于 JTextField 的单元格编辑器 带有这个丑陋的黑色边框 忽略左侧的插入符号 有没有办法将其删除 使其看起来与此类似 创建表后 您可以尝试以下操作 DefaultCellEditor editor DefaultCellE
  • 如何制作复杂列表的完全非共享副本? (深拷贝是不够的)

    看一下这段 Python 代码 a 1 2 3 b 4 5 6 c a b b a 1 2 3 4 5 6 4 5 6 1 2 3 c 0 0 append 99 1 2 3 99 4 5 6 4 5 6 1 2 3 99 注意如何修改一个
  • 如何将 bean 注入 Spring Condition 类?

    我正在定义条件 稍后我将检查这些条件以动态加载我的服务接口的两个实现之一 Component public class IsPolicyEnabled implements Condition Autowired private MyPro
  • 如果可以构造 HttpContext 为什么要模拟它呢?

    我一直在 ASP NET 中以某种方式伪造 模拟 存根 HttpContext 在 ASP NET MVC MonoRail 中更容易 但我可以看到 HttpContext 本身可以轻松构建 只需几行代码即可 var tw new Stri
  • 我可以通过计算表达式来确定并可能设置为 null 的属性吗?

    我有一个服务 它接受一个对象 并根据其中的属性执行不同的操作 这样 这些属性中的任何一个都可以为 null 这意味着不执行此操作 我正在尝试创建一个非常简单易用的 API 来在某些属性可能深达多个级别的情况下执行此操作 这是当前实现的示例
  • 错误“命名空间不直接包含字段或方法等成员”

    我正在尝试构建我的 C 项目 但收到错误消息 命名空间不直接包含字段或方法等成员 它标记了 app config 文件的第一个字符 小于号 我检查了所有文件 查找命名空间内直接存在变量或函数的位置 但什么也没发现 app config 看起
  • 如何在 Django 中用 None 保存 FileField?

    我有带有 Avatar 字段的模型配置文件 使用 FileField class Profile models Model avatar models FileField Uploaded avatar of profile storage
  • 查找文件中包含重复字符的行

    我需要一些帮助来查找文本文件中包含重复字符的行 我更喜欢使用 bash 但任何其他方法都可以 一个小例子只是为了让事情变得清楚 文件 txt 1234 11234 abcd 12234 ab321 1233 zs11w 12w2 所需的输出
  • 这两种算法的结果有区别吗?

    这两种算法用于检查有效的会员号码 第一个是公司给我的 第二个是我设计的 从我的测试中我看不出它们在功能上有任何区别 有没有任何情况下任何人都可以看到他们会返回不同的输出 test input 6014355021355010 or 6014
  • 使用适用于 Amazon S3 存储桶的 Java SDK 下载大量文件

    我有大量文件需要从 S3 存储桶下载 我的问题类似于本文 https stackoverflow com questions 1051275 downloading a large number of files from s3除非我想用
  • UIWebView背景颜色

    我正在将 HTML 字符串加载到 UIWebView 中 以便能够查看富文本 到目前为止 一切都很好 但我有一个小问题 在我的 Nib 文件中 我将背景属性设置为绿色 然而 当它显示时 背景是白色的 然后 在类文件中 我添加了以下内容 my
  • Django 外键查询最佳实践

    模型 py class Category models Model name models CharField max length 50 class SubCatergory models Model parent category mo
  • Plotly:并排图之间的 shareX

    我想要两个并排的图共享相同的 X 轴和相同的工具栏 这意味着 通过放大第一个图 第二个图应自动调整大小到相同的缩放区域 一种方法是将图堆叠在另一个之上 使用shareX TRUE 但我需要他们并排 在 python 中似乎有一种方法可以做到
  • 便宜又令人愉快的 rand() 替换

    在对大型游戏程序进行分析后 我发现库函数 rand 消耗了总处理时间的相当一部分 我对随机数生成器的要求不是很繁重 它是否通过大量纯随机性统计测试并不重要 我只是想要一些便宜又令人愉快而且速度非常快的东西 有什么建议么 很少有常用的算法比L
  • 如何使用 useContext 更改 Context 的值?

    使用useContextReact 16 8 的 hook 效果很好 您可以创建组件 使用挂钩并利用上下文值 不会出现任何问题 我不确定如何将更改应用于上下文提供程序值 1 useContext 钩子严格来说是消费上下文值的一种手段吗 2
  • 从 Windows 服务通过调制解调器播放语音

    我正在开发一个 VB NET Windows 服务 该服务持续检查 BMS 数据库是否有新警报 并拨打电话远程警告操作员 我目前正在使用 NET TAPI 包装器和 SAPI 5 3 互操作程序集 我通过电话交谈的步骤是 初始化TAPI接口
  • 如何从主机到 mysql docker 容器执行 mysqldump 命令

    我想为在 docker 容器中运行的数据库创建 mysql 转储 但是 我不想进入容器并执行命令 而是从主机执行此操作 有没有办法做到 我尝试了一些东西 但可能我的命令是错误的 docker exec d mysql sh mysqldum
  • 如何修复 checkmarx 信任边界违规

    我保留用户输入请求中的值 查克马克思抱怨有违反信任边界 从元素请求获取用户输入 该元素的值在没有经过适当清理或验证的情况下流经代码 并最终存储在服务器端 Session 对象中 我还发现这个帖子 https stackoverflow co
  • Java 基本数据类型修饰符是什么?

    好吧 我已经用 Java 编程三年了 现在 我认为自己非常有经验 然而 在查看 Java SE 源代码时 我遇到了一些意想不到的事情 in class Double public static final double MIN NORMAL