`
JiongBull
  • 浏览: 8331 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

解惑5:十六进制的趣事

 
阅读更多

[声明]所有代码均来自Joshua Bloch和Neal Gafter所著的<Java解惑>一书,本人仅因学习需要摘抄和注释,感谢二位作者的知识分享.

 

代码:

 

public class JoyOfHex {
	public static void main(String[] args) {
		System.out.println(Long.toHexString(0x100000000L + 0xcafebabe));
	}
}

 

 结果:

 

cafebabe

 

 

分析:

十进制的字面量只有正值,通过前置正负号来表示正负,但是八进制或者十六进制只能通过最高位来表示正负,最高位为1时表示负数.

本题中是long型数据+int型数据,所以int型数据会被扩展至long型.

int型的0xcafebabe最高位进行扩展,0xffffffffcafebabe


运算:

0x0000000100000000L

      +  0xf f f f f f f f cafebabeL

  结果:         0x00000000 cafebabeL

 

 

解决方案代码:

public class JoyOfHex {
	public static void main(String[] args) {
		System.out.println(Long.toHexString(0x100000000L + 0xcafebabeL));
	}
}

 结果:

1cafebabe
 

 

分享到:
评论

相关推荐

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

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

    Java解惑 PPT1

    **谜题5:十六进制运算** 在进行十六进制运算时,需要注意数字的类型和表示方式。例如,`Long.toHexString(0x100000000L + 0xcafebabe)`。这里的`0x`前缀表示十六进制,但负数十六进制的表示比较特殊,不能简单地...

    java 解惑.pdf

    **谜题5:十六进制的趣事** - **描述**:涉及十六进制数值的处理,结果与预期不符。 - **解惑**:在Java中,十六进制数可以通过前缀`0x`或`0X`表示。需要注意的是,十六进制数的范围和二进制、十进制数有所不同。...

    java解惑-语法细节介绍

    3. **运算中的应用**:十六进制数值可以参与算术运算。例如: ```java int decimalValue = 0xFF + 10; System.out.println(decimalValue); // 输出265 ``` 4. **位操作**:由于十六进制的特性,它非常适合用于...

    《Java解惑》

    《Java解惑》一书揭示了Java编程中常见的困惑与陷阱,旨在帮助开发者避免这些问题,提高代码质量和效率。以下是对书中的几个关键知识点的详细解释: 1. **奇偶判断优化**: 在Java中,判断一个整数是否为奇数,...

    java解惑很全的题目

    ### 谜题 5:十六进制的趣事 此谜题可能涉及到将十六进制转换为十进制或者二进制的操作,Java中的`Integer.parseInt()`或`Integer.toHexString()`方法可以帮助完成这种转换。 ### 谜题 6:多重转型 多重转型涉及...

    城投解惑系列之十六:“铁路上”的城投知多少?(28页).pdf

    【城投解惑系列之十六:“铁路上”的城投知多少?】 本报告主要探讨了铁路建设领域的城投公司,即铁投,及其在当前中国交通网络中的角色、资金来源、业务结构和风险评估。2021年5月28日,四川省铁路产业投资集团与...

    java 解惑.doc

    5. **十六进制的趣事**:谜题5可能揭示了在Java中处理十六进制数值时的陷阱,包括解析、转换或显示的问题。 6. **多重转型**:Java的多态性和类型转换是其核心特性之一,谜题6可能讨论了不当转换导致的错误。 7. *...

    Java解惑(谜题)CHM中英文双版本

    谜题5:十六进制的趣事 谜题6:多重转型 谜题7:互换内容 谜题8:Dos Equis 谜题9:半斤 谜题10:八两 Java谜题2——字符谜题 谜题11:最后的笑声 谜题12:ABC 谜题13:畜牧场 谜题14:转义字符的溃败 ...

    JAVA解惑.pdf

    ### JAVA解惑知识点详解 #### 知识点一:类字面常量及`.getName()`方法 **背景介绍**:在Java中,类字面常量是指直接引用一个类的对象,例如`Me.class`,这种方式可以获取到当前类的`Class`对象。`Class`对象提供...

    数字电路问题解答.pdf

    二进制数转换为八进制或十六进制,通常是将二进制数分组,每组3位(八进制)或4位(十六进制),不足部分用0补足,然后将每组的二进制数转换为对应的八进制或十六进制数。 【8421码与8421BCD码】 8421码是一种四位...

    Java 解惑 (中文)

    ### Java 解惑:常见编程疑惑解析 #### 一、数值表达式详解 ##### 1. 奇偶判断 在Java开发中,判断一个整数是否为奇数时,通常的做法是使用`i % 2 == 1`,但这种方法存在缺陷——当`i`为负数时,此条件不成立。...

    Java解惑(中文)

    ### Java解惑:深入解析Java中的谜题与陷阱 #### 谜题1:奇数性的判断误区 在Java编程中,判断一个整数是否为奇数看似简单,但实则隐藏着潜在的陷阱。一个常见的错误实现是通过检查一个整数`i`对2取模是否等于1来...

    《Java迷题解惑》PDF

    有意思的一本书,都是有点难度且又比较有意思的JAVA问题,比如表达式奇数性解惑、找零时刻、长整除、十六进制的趣数等等,特别是这本书的语言也很会激起我们的兴趣,先从实际生活中的故事说起,然后了解所需,最后用...

    《找事:给年青一代的就业解惑书》读书笔记.pdf

    "《找事:给年青一代的就业解惑书》读书笔记" 本书《找事:给年青一代的就业解惑书》是著名经济学家何帆教授的新作,该书旨在指导年轻人找到自己的职业道路,而不仅仅是找到一份工作。书中探讨了当前就业市场的变化...

    Java解惑.doc

    例如,`0x80`是一个负的十六进制整数,因为它在二进制表示中最高位为1,但在转换为`int`时,由于最高位(第32位)为0,所以`0x81`是正数。如果需要表示超过32位的数值,必须在字面常量后面加上`L`来确保它是`long`...

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

    如果一个整数字面常量没有后缀,则默认为int类型,此时即使它是十六进制或八进制表示,其值也不能超过int类型的最大值。如果要表示超过int类型的值,需要添加L后缀来强制表示为long类型。例如,0x***是一个int类型的...

    计算机组成原理教师用书(附答案)

    - 误点疑点解惑:解决二进制转换过程中的疑惑。 - 相关知识介绍:介绍高级数据编码技术。 - 教材习题解答:提供练习题解答。 - **第三章:运算方法与运算器** - 基本内容要求:讲解基本运算原理及运算器的设计。...

    Java 解惑

    ### Java 解惑知识点详解 #### 一、表达式谜题:奇数性的判断 **谜题背景** 在Java中,有一个方法意图判断一个整数是否为奇数。该方法使用了模运算(%),但其行为并非总是符合预期。 **问题描述** 方法`public ...

Global site tag (gtag.js) - Google Analytics