`

java解惑之—十六进制的字面常量。

阅读更多

先来看一个小程序:

public class JoyOfHex{

     public static void main(Sting[ ] args){

          System.out.println(

                Long.toHexString(0x100000000L+0xcafebabe));

     }

}

初看这个小程序的结果应该是:1cafebabe;但是并不是我们想象的那样。这个问题设计到了十进制和十六进制以及八进制数

在JAVA中字面常量的属性问题。对于十进制数,JAVA中如果不显示的在前面加负号,那么就是正数,但是对与十六进制和八进制数,如果最高位被置位的话,那么就表示一个负数了。现在该明白了吧o(∩_∩)o...对于上面的例子0xcafebabe代表的数值是

-889275714,注意到左边的数值是Long类型的(它是八个字节,那么最多可以容纳64位,也就是16位十六进制数,所以不用考虑溢出),所以对于右边的int型的变量要提升为Long型的,结果为0xffffffffcafebabe;

注意:如果在0xcafebabe改为0xcafebabeL那么结果就是正确的,因为加是L后就避免了符号扩张哈哈。

 

今天又学到了一点点小知识。。记录一下哈哈。。

 

分享到:
评论

相关推荐

    《Java解惑》

    十六进制和八进制字面常量的类型默认是`int`,其正负取决于最高位。如果最高位为1,那么这个常量会被解释为负数。例如,`0x80`表示-128,`0x8001`表示-32767。若要表示大于`Integer.MAX_VALUE`的数,需加上`L`后缀...

    Java编程中须注意的细节.pdf

    如果一个十六进制或八进制字面常量的最高位设置了1,则该常量表示为负数。 通过理解并掌握以上提到的Java编程细节,开发者可以更加精确地控制代码逻辑,避免不必要的错误,并写出更加健壮的程序。这不仅有助于减少...

    Java解惑(中文版)_java_java解惑_solve65p_

    《Java解惑(中文版)》是一本专为Java初学者设计的学习资料,旨在帮助读者解答在学习Java过程中遇到的各种困惑。"solve65p"可能代表这本书包含65个问题或主题,每个都深入浅出地进行了讲解,旨在解决初学者在编程...

    基于 QT 编写的十六进制编辑器,采用 C++ 进行开发,目的是让 Deepin 上具有强大而免费的十六进制编辑器 .zip

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全栈开发),有任何使用问题欢迎随时与我联系,我会及时为您解惑,...

    Java 解惑 (中文)

    负的十六进制与八进制字面常量 Java中的数字字面常量默认为`int`类型,无论采用何种进制表示。特别地,当数值超过`int`的最大范围时,需要显式指定为`long`类型,例如: ```java long num = 2147483648L; // 以...

    java 解惑 java 解惑 java 解惑

    java 解惑 java 解惑 java 解惑 java 解惑 java 解惑 java 解惑

    java解惑-语法细节介绍

    ### Java解惑——语法细节介绍 #### 概述 Java作为一种广泛应用的编程语言,拥有庞大的用户群体和丰富的应用场景。在日常开发过程中,我们往往会遇到一些容易忽视却又十分重要的语法细节。这些细节虽然不起眼,但...

    JAVA解惑

    #### 负的十六进制与八进制字面常量 在Java中,“数字字面常量”的默认类型是`int`,不论其采用何种进制表示。然而,当尝试表示超出`int`范围的负数时(如`-2147483648`),编译器将抛出错误。为了正确表示大负数,...

    Java解惑word版

    对于十六进制和八进制,最高位为 1 时,字面常量被视为负数。例如,`0x80000001` 在作为 `int` 类型时是负数,而作为 `long` 类型则是正数。 总结来说,Java 在处理数值表达式时需要关注数据类型、精度和溢出问题。...

    Java解惑 PPT1

    【Java解惑PPT1】深入探讨Java编程中的常见迷惑 在Java编程中,了解语言的细微之处至关重要,因为这可能会导致意想不到的行为。本PPT主要涵盖了五个有趣的Java谜题,帮助开发者理解Java的一些核心概念。 **谜题1:...

    Java解惑 布洛克 著;陈昊鹏 译

    《Java解惑》 布洛克 著;陈昊鹏 译 扫描清晰带目录,仅供参阅,请支持正版

    Java解惑 中文版

    《Java解惑中文版》是一本专为Java程序员设计的指南,旨在帮助读者解决在编程过程中遇到的各种问题,提升程序的健壮性。本书深入浅出地探讨了Java语言的核心概念、常见疑惑以及最佳实践,旨在使开发者能够编写出更...

    Java PUZZLE Java 解惑

    Java PUZZLE Java 解惑 Java PUZZLE Java 解惑 Java PUZZLE Java 解惑Java PUZZLE Java 解惑 Java PUZZLE Java 解惑 Java PUZZLE Java 解惑

    JAVA 解惑 java经典

    "JAVA解惑"的主题针对的是Java学习过程中遇到的一些常见问题和难点,旨在帮助开发者深入理解和解决这些问题。以下是基于这个主题和描述可能涵盖的一些关键知识点: 1. **Java基础**:这可能包括变量、数据类型、...

    java解惑 PDF版

    在Java编程中,开发者经常会遇到各种误区和混淆之处,这些问题可能涉及语言特性、算法逻辑、性能优化等多方面。文档《java解惑 PDF版》中列举了95个这样的谜题,每个谜题都旨在帮助开发者理解并纠正一些常见的错误...

    Java解惑.pdf

    Java编程语言是世界上最流行的开发平台之一,广泛应用于企业级应用、移动应用(尤其是Android系统)、大数据处理、云计算等领域。这份“Java解惑.pdf”文档很可能包含了解决Java开发者在编程过程中遇到的常见问题和...

Global site tag (gtag.js) - Google Analytics