标签:

看看下面这段代码输出什么:

System.out.println(Long.toHexString(0x100000000L + 0xcafebabe));

一个long+一个int,int转为long,再与前者相加。应该是 0x1cafebabe 没错。

结果输出的是:cafebabe

这里隐藏了一个问题:10进制int,复数用负号表示。那么16进制的int呢?

是的,16进制的负数用的是二进制表示中首位1表示负数。

0xcafebabe 的 二进制表示: 11001010111111101011101010111110

所以,实际表示的是负数:-889275714

对应转换的时候,int 转为 long,结果为:1111111111111111111111111111111111001010111111101011101010111110

与对应的0x100000000L相加,

1111111111111111111111111111111111001010111111101011101010111110

+                                                       100000000000000000000000000000000

-----------------------------------------------------------------------------------

=                                                        11001010111111101011101010111110(0xcafebabe)

要得到正确的结果,需要改成:

System.out.println(Long.toHexString(0x100000000L + 0xcafebabeL));

总结

使用16进制进行计算时,需要注意负数情况。

标签:

java 16进制 负数_Java随笔:小心16进制负数相关推荐

  1. java integer转成负数_Java 十进制和十六制之间的转化(负数的处理)

    在一些情况下,我们需要将数字在十进制和十六制下互相转化. 在Java中将十进制转化成十六进制非常的简单. int var = 324; String hex = Integer.toHexString ...

  2. java扫描指定package注解_java随笔-扫描使用指定注解的类与方法

    前几天项目中让扫描出所有使用Restful API的方法.刚开始还想着用python过滤关键字来查找的,后来想想可以使用反射来搞的.主要包含以下三个步骤: 根据包名解析包的具体路径 查找指定包下指定注 ...

  3. java里正数和负数_Java程序检查数字是正数还是负数

    Java程序检查数字是正数还是负数 在该程序中,您将学习检查给定的数字是正数还是负数.这是通过在Java中使用if else语句完成的. 示例:使用if else检查数字是正数还是负数 public  ...

  4. java % 负数_Java如何在括号中显示负数?

    下面的代码段向我们展示了如何在括号中显示或格式化负数.我们从定义数字格式开始,该模式有两部分,以分号分隔.在代码段中,我们使用了#,##0.00;(#,##0.00)模式.分号后的模式将用于格式化负数 ...

  5. java 左移负数_Java中的左移时的负数问题

    java 中的左移的运算符为< 但是使用的时候要注意符号位的问题,如下: public void shiftTest() { int n = 1; while (n != 0) { n = n ...

  6. java 60进制运算_Java【第二篇】基本语法之--进制、运算符

    进制 生活中的进制:七进制(一周).十二进制(12小时制).二十四进制(24小时制).六十进制(分钟) 对于整数,有四种表示方式: 二进制(binary):0,1 ,满 2 进 1.以 0b 或 0B ...

  7. java的代码之进制转换(2,8,16与10进制转换)

    文章目录 一.2,8,16进制转换成10进制 二.10进制转换成2,8,16进制返回STRING 三.自己写的十进制转换成十六进制 一.2,8,16进制转换成10进制 使用Integer.parseI ...

  8. 用java编写进制转换器_JAVA 简单进制转换器

    JAVA作业写了个进制转换器...写出来的东西还蛮怪的 /* * Author:graykido * Coding:GBK * */ package Caculater; import javafx. ...

  9. 进制转换器java程序_Java实现复杂的进制转换器功能示例

    本文实例讲述了Java实现复杂的进制转换器功能.分享给大家供大家参考,具体如下: 这是用java写的进制转换器,包括10.2.8.16进制之间共12种的相互转换.输入一个要转换的数之后,按提示选择所采 ...

  10. java一个byte字节可以存2个16进制字符

    一个字节是8位(bit),xxxxxxxx ,范围从00000000 - 11111111,表示0到255. 一个16进制字符(用二进制表示是xxxx)最多只表示到10进制的15(即16进制的F) 要 ...

最新文章

  1. python不好的地方_Python 语言中经常有疑惑的地方
  2. Arduino IDE 配置文件
  3. wifiphisher 依赖_铂瑞思:总是依赖别人的话,就永远也长不大
  4. pytdx 获取板块指数_能否增加一个通过股票代码,板块指数代码获得中文名称的接口?...
  5. 计算分数加减表达式的值(信息学奥赛一本通-T1079)
  6. anaconda版本选择_Python环境搭建之Anaconda快速学习
  7. KVM Virtual Networking Concepts
  8. 分享Silverlight/WPF/Windows Phone一周学习导读(11月6日-11月12日)
  9. 未来软件是什么样子?-SIF期货
  10. 什么是软件外包公司?要不要去外包公司?
  11. Markdown - 推荐一个markdown在线编辑器
  12. C++相关问题笔记(一)
  13. JSP标签的简单使用
  14. ChromeOptions
  15. Ubuntu16.04 安装docker-ce [傻瓜教程]
  16. C# /.NET6 实现语音转文字(科大讯飞语音转文字接口)
  17. gpgpu_CPU与GPGPU
  18. 单片机嵌入式操作系统内核
  19. oracle 建立外键 引用条件约束 不能添加,Oracle外键约束(Foreign Key)的几个操作选项...
  20. vue监听手机键盘搜索事件

热门文章

  1. 雷达原理---基础知识
  2. 抽样分布的形式与原有总体的分布和样本容量n的大小有关
  3. 中国矿业大学计算机学院推免,j机电学院2008届毕业生推免工作顺利完成
  4. 自我救赎,成就希望——小说《致加西亚的信》的读后感范文3400字
  5. 鸿蒙开发必备书籍整理【收藏系列】
  6. JS验证邮箱 身份证 VISA 卡[转]
  7. LongIsland纽约长岛LangeEylandt
  8. biostarhandboo(三)|本体论和功能分析
  9. 一分钟了解业务流程图与功能流程图的区别
  10. java isbn_Java ISBN formating