`
Notebookdong
  • 浏览: 122643 次
社区版块
存档分类
最新评论

关于int转换成byte溢码

    博客分类:
  • java
 
阅读更多
/*
因为Java中byte是用8位来存储,只能表示-128~127之间的数,当由int强制类型转化为byte时,系统就采取了截取int后8位的做法。
那么130在内存中的表示形式:00000000 00000000 00000000 10000010
这样截取后8位就变成10000010,补码表示的时候第一位是符号位,0正1负,
所以可以知道10000010肯定是一个负数了,再来看它的数值部分,
补码由正数变负数,还是正数变负,方法:“按位取反,再加1”,
 所以0000010应该变为1111101 + 1 = 1111110(即126)
又因为是负数,所以就截取变成-126了

把byte还原成int时和0xff做‘与运算’((byte)192&0xff)
如果不进行&0xff,那么当一个byte会转换成int时,对于负数,会做位扩展,举例来说,一个byte的-1(即0xff),会被转换成int的-1(即0xffffffff),那么转化出的结果就不是我们想要的了。 

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

 

分享到:
评论

相关推荐

    int类型和byte数组之间的转换

    写一个方法,将int类型转换为字节数组,输入任意int类型整型,输出字节数组;写第二个方法,输入字节数组,输出对应int类型数据。

    andriod byte 转int,string,数组,互转

    byte转化工具类,可以实现byte转int,数组,string,小端取高位,低位等

    byte数组转换工具类 byte数组转int,byte数组转short,short转byte数组

    byte数组操作的工具类,支持byte数组转int,int转byte数组,byte数组转short,short转byte数组。。。 下载的人多了,csdn会自动涨分,现在可以手动调了,我给降到最低了

    Java数值类型与byte数组相互转换

    Java bytes数组与基本类型的相互转换 Int -> Bytes int64ToByte8 int48ToByte6 int40ToByte5 int32ToByte4 int24ToByte3 int16ToByte2 int8ToByte Bytes -> Int bytesToInt64 bytesToInt48 bytesToInt40 bytesTo...

    java实现的字节数组转换成基本类型,基本类型转换成byte[]

    char short int long float double 转换成byte数组

    java byte相互转换详解左右位移

    2. **int转byte**:将int转换为byte数组时,我们需要将int的每个字节分离到byte中。这可以通过右移并用0xFF进行AND操作来实现。例如,`int a = 1246; byte[] b = new byte[4]; b[0] = (byte) (a >> 24 & 0xFF);` ...

    go语言中int和byte转换方式

    这意味着将int转换为byte时,如果int的值超出了byte的表示范围,超出的部分将会被舍弃。而将int32或int64类型转换为byte数组则需要稍微复杂的操作。由于这些数据类型可能超过一个字节,我们需要通过位操作来将各个...

    int、char、double与byte类型之间相互转换

    本文将详细介绍如何实现int、char、double与byte类型之间的相互转换,并通过具体的示例代码来阐述每一种转换方法。 ### 一、int类型转换为byte数组 #### 方法:intToByte() 该方法接收一个int类型的参数`number`,...

    Java中byte转int的方法

    byte转化为int有两种情况:  1)要保持数值不变  应用场景:数值计算。等等。  方法:能够直接?用强制类型转换:int i = (int) aByte,  比如:若aByte=0xff(即数值为-1)。则转化为int后。i为0xffffffff。...

    java基本类型与byte数组互相转换.pdf

    字符类型在 Java 中是 16 位的 Unicode 字符,转换成 byte 数组需要将字符类型转换成 int 类型,然后将 int 类型转换成 byte 数组。例如: ```java public static byte[] charToByteArr(char ch) { byte[] b = new...

    在Java中int和byte[]的相互转换

    为了将int转换为byte数组,我们可以逐位提取int的每一位,并将其存储到byte数组中。以下是一个实现此功能的函数: ```java public static byte[] intToBytes(int i) { byte[] bytes = new byte[4]; bytes[0] = ...

    Java如何把int类型转换成byte

    主要介绍了Java如何把int类型转换成byte,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    S7-1200中将BYTE类型数据转换成char类型数据的具体方法.docx

    本教程将详细介绍如何在TIA博途环境下将BYTE类型的数据转换成char类型数据,以及在转换过程中需要注意的事项。 首先,创建一个TIA博途的新测试项目,然后在程序块中定义一个DB块。在这个DB块中,我们需要创建两个...

    C语言如何将int转byte类型

    `-128-127的int都可以转成byte.txt` 可能包含了将这个范围内的 `int` 值转换为 `byte` 的例子,而 `INT转byte,直接%255.txt` 可能展示了仅对非负 `int` 值取模的方法。`byte是00~FF,int是0000 0000~FFFF FFFF.txt`...

    JAVA转byte[]为int,long,double

    以上就是关于“JAVA转byte[]为int,long,double”的知识讲解,理解这些转换对于处理二进制数据至关重要,尤其是在网络通信、序列化和反序列化等场景中。通过熟练掌握这些转换,你可以更好地处理和解析不同数据类型的...

    C# Byte数组转Int32 Short Float(浮点数)

    标题和描述提到的“C# Byte数组转Int32 Short Float(浮点数)”是指将字节数组中的数据转换为整型(Int32)、短整型(Short)以及浮点数(Float)的过程。以下是对这个主题的详细解释: **字节数组基础** 字节数组...

    C# DLL byte数据转换,用于PLC读取Byte数据类型转换,直接调用dll输入函数名称有注释,就可以使用,小创作

    public bool ByteToBool(byte[] bytes, int startindex, int Pointer) 读取位 public Int32 BytesToInt32(byte[] bytes, int startindex) 读取4位整数 public short BytesToShort(byte[] bytes, int startindex)...

    Qt中QString、QByteArray、int、double之间转换 - 苦涩的茶 - 博客园1

    这会将int_head和int_data转换成二进制形式的字符串。 2. int或double转QByteArray: 要将数值转换为QByteArray,可以使用`memcpy`函数,它用于将内存区域的内容复制到另一个内存区域。例如: ```cpp QByteArray ...

    Java将图片转换为byte数组例子总结

    本文将详细介绍如何使用Java将图片转换为`byte`数组以及如何将`byte`数组还原成图片。 #### 二、将图片转换为byte数组的方法 **方法名称**:`imageToBytes` **参数**: - `Image image`:表示输入的图片对象。 - ...

    基于java中byte数组与int类型的转换(两种方法)

    在Java编程中,将`int`类型转换为`byte`数组以及从`byte`数组还原回`int`类型是常见的操作,特别是在网络编程中。这是因为网络传输的数据通常以字节流的形式存在,而`int`等基本数据类型需要进行适当的序列化才能...

Global site tag (gtag.js) - Google Analytics