`
573842281
  • 浏览: 43874 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

byte类型数据转化为十六进制3

 
阅读更多

Integer.toHexString的参数是int,如果不进行&0xff,那么当一个byte会转换成int时,由于int是32位,而 byte只有8位这时会进行补位,
例如补码11111111的十进制数为-1转换为int时变为11111111111111111111111111111111好多1啊,呵呵!即 0xffffffff但是这个数是不对的,这种补位就会造成误差。
和0xff相与后,高24比特就会被清0了,结果就对了。

----
Java中的一个byte,其范围是-128~127的,而Integer.toHexString的参数本来是int,如果不进行&0xff, 那么当一个byte会转换成int时,对于负数,会做位扩展,举例来说,一个byte的-1(即0xff),会被转换成int的-1(即 0xffffffff),那么转化出的结果就不是我们想要的了。

而0xff默认是整形,所以,一个byte跟0xff相与会先将那个byte转化成整形运算,这样,结果中的高的24个比特就总会被清0,于是结果总是我 们想要的。

分享到:
评论

相关推荐

    android byte字节数组转换十六进制字符串

    在Android开发中,有时我们需要将字节数组(byte array)转换为十六进制字符串,以便于数据存储、传输或调试。这是因为字节数组是二进制数据,而十六进制字符串则是一种人类可读的表示方式。下面我们将详细讨论如何...

    byte、十进制、十六进制间的转换

    byte数组、十进制、十六进制间的两两转换

    把十六进制的位串转化为byte数组

    在Java编程中,将十六进制位串转化为byte数组是一项常见的操作,特别是在处理二进制数据、网络通信或者加密解密等领域。这篇博文"把十六进制的位串转化为byte数组"可能就是针对这个主题提供了一个实用的方法或工具。...

    进制数转换二进制八进制十进制十六进制之间转换方法PPT学习教案.pptx

    * 八进制转换为十六进制:先将八进制数转换为二进制数,再将二进制数转换为十六进制数。 * 十六进制转换为八进制:先将十六进制数转换为二进制数,再将二进制数转换为八进制数。 五、总结复习 进制数之间的转换是...

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

    5. **十六进制转二进制**:先将十六进制转换为十进制,再转为二进制。例如: ```java String hex = "1A"; int decimal = Integer.parseInt(hex, 16); String binary = Integer.toBinaryString(decimal); ``` 6. **...

    十六进制与字符串转换

    这个示例展示了如何使用`sprintf`将一个字节转换为十六进制字符串,以及如何使用`strtol`将一个十六进制字符串转换回字节。 在实际应用中,你可能会遇到更复杂的情况,比如处理包含多个字节的数组或者字符串,这时...

    c#,十六进制转换成浮点数

    有时我们需要将不同格式的数据进行相互转换,例如将十六进制数字转换为浮点数。在C#中,这种转换通常涉及到字符串解析、位操作以及浮点数表示的深入理解。本文将详细解释如何实现这个过程,并探讨相关知识点。 首先...

    pb字符串转十六进制及各进制之间转换源码

    PowerBuilder作为一款老牌的客户端/服务器应用程序开发工具,提供了丰富的功能,包括字符串处理和数据类型转换。本篇将详细介绍如何在PowerBuilder 9中进行字符串转十六进制以及不同进制之间的转换。 在Power...

    C#十六进制转换十六进制转换

    在编程领域,尤其是在C#语言中,十六进制(Hexadecimal)转换是一个常见的操作,它涉及到数字、字符串以及颜色代码等不同数据类型的相互转化。十六进制是一种逢16进1的进位制,通常用0-9和A-F这16个字符表示。在...

    Lua小程序十六进制字符串和二进制数据间的转换[借鉴].pdf

    -- 转换十六进制字符串为二进制数据 for i = 1, string.len(hexstr) - 1, 2 do local doublebytestr = string.sub(hexstr, i, i+1) local n = tonumber(doublebytestr, 16) if 0 == n then bytesfile:write('\00...

    十六进制转字节工具

    4. 可能包含文件操作,如读取包含十六进制数据的文件并转换为字节数组。 综上所述,"十六进制转字节工具"对于C语言开发者来说,是一个实用的辅助工具,能够方便地处理十六进制数据和字节操作,简化编程过程,提高...

    C#实现十六进制转换成浮点数

    在C#中,有时我们需要将十六进制数值转换为浮点数,以进行各种数学计算和数据处理。本篇将深入探讨如何在C#中实现这一转换。 首先,理解浮点数的存储方式是至关重要的。在计算机内部,浮点数通常是用IEEE 754标准来...

    将键入的十六进制数转换为对应二进制数并回显

    根据给定文件的信息,我们可以总结出以下详细的IT知识点: ...此程序不仅包含了基本的输入输出功能,还涉及到了数据验证、转换算法等关键步骤,对于学习十六进制与二进制转换具有很好的参考价值。

    IEEE754浮点数与十六进制转换,带4字节的顺序调整

    总的来说,理解IEEE 754浮点数的结构以及如何进行十六进制转换和字节顺序调整是进行高效且准确的跨平台数据交换的关键。通过提供的`IEEE754.exe`程序,用户可能能够直观地体验和学习这个过程,帮助他们在实际开发中...

    Java实现的进制转换工具类完整示例

    3. 将字节数组转换为十六进制字符串:`public static String encodeHexStr(byte[] data)` 该方法将字节数组转换为十六进制字符串。该方法可以将字节数组转换为小写或大写的十六进制字符串,可以根据需要选择。 4. ...

    十六进制字符串按位异或运算工具和java位异或运算

    在计算机科学中,十六进制(Hexadecimal)是一种逢16进1的进位制,通常用于表示二进制数据,因为每个十六进制数字可以代表4位二进制数,使得二进制数据的书写更为简洁。异或运算(XOR)是计算机逻辑运算的一种,它...

    十六进制文件比较.rar

    2. 十六进制转换:将二进制数转换为十六进制,可以更简洁地表示大量的二进制数据。 3. 文件偏移(Offset):在文件中的位置,以字节为单位,帮助我们定位到特定的数据。 4. 差异标记:比较工具用颜色或特殊字符...

    C#十六进制和中文汉字之间的转换

    在IT领域,尤其是在编程与数据处理中,十六进制与字符编码之间的转换是一项常见的需求,尤其是在处理非英文字符集如中文汉字时。本篇文章将深入探讨如何在C#语言中实现十六进制与中文汉字之间的相互转换,这不仅对...

    字符串与十六进制相互转换delphi源码

    3. **二进制转十六进制**:将二进制数转换为十六进制字符串。这可以通过将二进制数除以16并取余得到每位十六进制数,然后用十六进制字符映射(0-9和A-F)替换余数。 4. **处理汉字和特殊字符**:对于非ASCII字符,...

    C# 字符串转十六进制串,16进制反向转回原字符串

    在C#编程中,字符串与十六进制之间的转换是一个常见的需求,特别是在处理数据存储、网络传输或者加密解密等场景。下面将详细讲解如何在C#中实现这一过程。 首先,我们要了解基本概念。字符串是由Unicode字符组成的...

Global site tag (gtag.js) - Google Analytics