System.out.println(Long.toHexString(0x100000000L+0xcafebabe));
先看看以上代码,感觉答案应该是:1cafebabe。但是答案却是:cafebabe。为什么呢,怎么感觉像是int型变量的相加,第32位的1被舍弃了。看看以下代码就明白了:
int hex=0xcafebabe; System.out.printf("hex is: %x\n",hex); System.out.printf("hex is: %x\n",(long)hex);
输出结果:
hex is: cafebabe
hex is: ffffffffcafebabe
恍然大悟,原来hex在转为long型数的时候变成了这样,怪不得和0x100000000L相加之后,1被舍弃了。为什么呢?
原因是:int型变量靠着(-)来声明负数,但是十六进制数和八进制数则没有这个(-),所以他们靠的是符号位。拿16进制数为例,只要首位超过了7(不含7),用二进制标示的话,第一个二进制位就变成了1,所以是负数。而题目中的首位c表示成二进制是:1100,所以在转成long型数时被认为是负数,则全部置为了f。
相关推荐
最近由于工作上的需要,遇到进制转换的问题。涉及到的进制主要是 十进制,十六进制,二进制中间的转换。还包括了一个字节数组 与十六进制字符串的互相转换。估计遇到蓝牙通信的朋友,应该用的上。
一个很实用的小工具,能够将十六进制转换为十进制及二进制。这个是最新的汉化版,包含IP地址字段和字节序翻转按钮。可以在简单模式及高级模式之间切换,在寄器ABC执行操作,结果将存储在寄存器中。适用平台:WINDOWS...
十六进制数的与或非运算,逻辑运算。支持十六进制数组
此程序用于十六进制对比用处 同时拖动2个文件进去,可以查看到不一样的地方,以便于知道哪些地方改动过了
软件界面上能显示课程设计题目、四则运算控制按钮、两组输入控件、一组输出控件,可实现连续运算,可实现单个元素的运算,也可实现一组数据的运算,可显示运算成功或运算错误提示。
计算十六进制串异或值;发送的设备命令通常为十六进制串形式;并采用异或进行校验,此工具帮助计算异或值,节省手动计算时间; 更新版
可进行十六进制字符串按位异或运算,就是输入十六进制数,每个十六进制数间输入空格,然后点输出即可得到结果
包括两部分 16位数 16进制补码计算和32位 16进制补码计算器
加载十六进制字符文件并计算和 加载十六进制字符文件并计算和
进制间转换 进制转换 二进制与十进制 八进制 十六进制转换
单双精度浮点数与十六进制双向转换工具,单双精度浮点数与十六进制双向转换工具,单双精度浮点数与十六进制双向转换工具
汇编语言各进制(二进制,八进制,十进制,十六进制)之间的转换,一网打尽,包括源码,word文档和PDF文档
十六进制数相加校验和计算程序,这是十六进制数相加取后两位数。
易语言置入汇编取十六进制整数。@易语言学习论坛。
计算机数制二进制十进制十六进制总结PPT课件.pptx
十六进制平方根的计算程序设计 XOR DX,DX ;DX清零 MOV CL,02H ;因输入数据为两位,故循环次数为2 CHANGE1: MOV AH,01H ;01号中断调用,输入1位数得到ASCII码 INT 21H SUB AL,30H ;将ASCI码转换为二进制 CMP AL,...
浮点数转换为十六进制的数值通常比较麻烦,这个小工具能够准确的进行计算
不同进制之间的转换纯粹是数学上的计算。不过,你不必担心会有么复杂,无非是乘或除的计算。 生活中其实很多地方的计数方法都多少有点不同进制的影子。...十六进制,比如小时或“一打”,六十进制,比如分钟或角度……
,专业,清晰,让你掌握计算机的二进制,十六进制,从入门开始打好基础。ASCLL转十六进制程序是大学老师上课的课件教程,通过它,你会有意外收获