`

十六进制计算问题

 
阅读更多
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。

分享到:
评论

相关推荐

    十六进制的定义 十六进制的转换介绍【详解】.docx

    十六进制到十进制的转换可以使用竖式计算法,即将每一位的权值相乘,然后相加。 十六进制到二进制的转换是将十六进制数转换为二进制数的过程。例如,十六进制数2AF5可以转换为二进制数0010101011110101。十六进制到...

    易语言嵌入汇编十六进制转长整数

    标题“易语言嵌入汇编十六进制转长整数”提及的是一个易语言程序,它利用了嵌入的汇编代码来实现从十六进制文本字符串转换为长整数(Long Integer)的过程。这个过程在计算机科学中具有重要意义,因为十六进制是一种...

    十进制转十六进制包含大小端设置_大小端_matlab_十进制_十六进制_

    本文将详细讨论大小端模式,并通过MATLAB实现一个将十进制数转换为十六进制数的函数,同时允许用户选择大小端模式。 首先,我们来解释一下大小端模式。在多字节的数据类型(如32位整数)中,最高有效位(MSB)和...

    java中进制转换(二进制,十进制,十六进制)及字节数组与十六进制的转换

    本篇将详细阐述如何在Java中进行二进制、十进制和十六进制之间的转换,以及字节数组与十六进制字符串的相互转换。 一、进制转换 1. **二进制转十进制**:Java中可以使用`Integer.parseInt()`或`Long.parseLong()`...

    基于MATLAB的简易十六进制计算器

    综上所述,基于MATLAB的简易十六进制计算器是一个结合了GUI设计、数值计算和错误处理的综合实践项目,对于学习MATLAB编程和理解计算机科学基础概念非常有帮助。通过这样的项目,学生不仅能掌握MATLAB的基本用法,还...

    十六进制与时间转换

    在计算机科学和信息技术领域,十六进制(Hexadecimal)是一种常用的数字表示方法,它扩展了...通过使用如“汉字十六进制转换工具”这样的辅助工具,我们可以更好地理解和处理日常工作中遇到的各种数据格式和时间问题。

    十六进制转float小工具,双击运行

    该工具能够理解这种格式,将十六进制数值解析为对应的浮点数值,这对于理解和调试涉及到浮点计算的程序非常有用。 4. **十六进制转double**:虽然标题中没有明确提到,但描述中包含了这一功能。double是另一种...

    十进制和十六进制转换成float、double数据

    在计算机科学中,数据通常以不同的进制表示,如十进制、十六进制等。在MATLAB和FPGA(Field Programmable Gate Array)设计中,理解和操作不同进制之间的转换是至关重要的。本文将详细讲解如何将十进制和十六进制...

    十六进制时间转化器和IP转化器

    "十六进制时间转化器和IP转化器"这样的工具,能够自动化完成这些转换,节省了手动计算的时间,提高了工作效率。在解密工作中,这可能涉及到对日志文件、网络报文或程序内存中的数据进行分析,其中时间戳和IP地址往往...

    labview十六进制转浮点数程序

    在本案例中,我们讨论的是一个LabVIEW程序,名为“十六进制转浮点数.vi”,它专门用于处理与下位机通信过程中涉及的十六进制和浮点数之间的转换问题。下位机通常采用这种格式传递数据,因为十六进制表示形式更利于...

    二进制、十进制、十六进制、C51十六进制转换器

    本文将深入探讨二进制、十进制和十六进制之间的转换,并特别关注C51编程中的十六进制处理。此外,ASCII代码表及其与字符的转换也将是讨论的重点。 首先,我们从最基础的开始,二进制(Binary)是计算机内部运算的...

    十六进制加减法 16进制加减法工具

    在计算机科学和信息技术领域,十六进制(Hexadecimal)是一种常用的数字表示方法,它使用16个符号来代表数值,这16个符号包括0-9的阿拉伯数字...通过使用这个工具,用户能够快速准确地进行十六进制计算,提高工作效率。

    汉字中文十六进制显示转换

    在串口通信中,数据通常是字节序列,因此,如果涉及汉字,就需要处理字符编码和十六进制转换的问题。发送方需要将汉字转换为十六进制字节流,接收方再将接收到的十六进制数据还原为汉字。 综上所述,“汉字中文十六...

    PHP CRC8算法-集成十六进制转byte数组与byte数组转十六进制

    由C代码翻译过来的PHP CRC8算法,内有十六进制转字节数组与字节数组转十六进制,内有十六进制转byte数组与byte数组转十六进制

    十进制转换为十六进制(模块化程序)

    这个模块可能包含一个函数,接受十进制数作为输入,通过上面描述的步骤进行计算,并返回十六进制字符串。 2. **输入/输出模块**:处理用户的输入和结果的输出。这个模块可能包含另一个函数,用于从键盘接收用户输入...

    C++十六进制转二进制

    本文将深入探讨如何在C++中进行十进制到十六进制以及十六进制到二进制的转换,这对于我们理解和处理计算机内部的数据表示至关重要。 首先,让我们从十进制转十六进制开始。在C++中,我们可以使用内置函数`std::hex`...

    Excel中通过VBA将十六进制转成十进制

    这个函数可以广泛应用于数据处理、科学计算和其他需要将十六进制转成十进制的场景中。 知识点: * VBA 语言的使用 * 十六进制和十进制数制系统的概念 * For 循环和 If 语句的使用 * 变量的使用和管理 * 十六进制到...

    视频文件头十六进制码分析

    视频文件头十六进制码分析是理解视频文件结构的关键步骤,它涉及到计算机如何存储和解析媒体数据。在深入探讨这个主题之前,我们首先要明白什么是十六进制码以及它与视频文件的关系。 十六进制(Hexadecimal)是一...

    单精度浮点数与十六进制转换_C语言程序

    综上所述,理解和掌握单精度浮点数与十六进制之间的转换不仅是C语言编程的基础技能之一,也是在各种计算领域,尤其是嵌入式系统和单片机应用中,实现高效数据处理的关键。通过深入分析上述代码示例,我们可以看到这...

    十六进制比较器

    - **系统调试**:在调试过程中,可以检查内存中的十六进制值,找出导致问题的原因。 总的来说,十六进制比较器是IT专业人士不可或缺的工具,它提供了对二进制和十六进制数据的强大操作能力,有助于深入理解数据和...

Global site tag (gtag.js) - Google Analytics