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

java byte[] 转 int 实现

    博客分类:
  • Java
阅读更多

函数需要: 传入一个一维byte数组, 比如{255,255} 转换为int 为65535,相当于16进制FFFFH,以此类推,当传入为{255,1}时,返回int为511,相当于1FFH.

基本上是用在协议解析上,当有两个byte表示长度协议时,用此函数可以得到协议的长度。

 

代码如下:

public static int bytesToInt(byte[] intByte) {
     int fromByte = 0;
     for (int i = 0; i < 2; i++)
     {
	int n = (intByte[i] < 0 ? (int)intByte[i] + 256 : (int)intByte[i]) << (8 * i);
	System.out.println(n);
	fromByte += n;
      }
     return fromByte;
}

 

而网上找的一些其他代码就不顶用不知道为什么,如:

public  static int bytesToInt(byte[] bytes) {
int num = bytes[0] & 0xFF;
num |= ((bytes[1] << 8) & 0xFF00);
return num;
}

 

 

分享到:
评论
4 楼 darxin 2010-06-09  
public static int toInt(byte[] value) {

  int i = (value[1] & 0xFF);
  i = (i << 8) | (value[0] & 0xFF);

  return i;
}


楼主讨论的是小端字节序及2个byte的情况。

其它情况(如大端字节序或4个byte)与此类似,不多说了。
3 楼 hedahai119 2010-06-08  
byte 不是 -127 - 128吗?
2 楼 condeywadl 2010-06-08  
ddzero 写道
为什么我试了可以?
还有你的代码里为什么要判断intByte[i]小于0啊?

   byte是0-255的数 所以要判断<0 我是这样测试的
   byte[] newByte = new byte[2];
   byte[0] = (byte)255;
   byte[1] = (byte)255;
   放进去就不对~~~
   因为用datainputStream的read方面读byte的话 传入的就是0-255的int呀~~
1 楼 ddzero 2010-06-08  
为什么我试了可以?
还有你的代码里为什么要判断intByte[i]小于0啊?

相关推荐

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

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

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

    在Java中,基本数据类型byte与int之间的相互转换涉及到计算机的二进制运算、位移操作以及补码的概念。我们首先了解Java中int和byte的数据结构,然后探讨它们之间的转换方法及其背后的原理。 **基本数据类型结构:**...

    Java中byte转int的方法

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

    JAVA转byte[]为int,long,double

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

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

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

    Java byte数组与其他类型转换

    本文将深入探讨如何在Java中将byte数组与其他基本类型(如short、int、long)进行转换,这些转换在处理二进制数据、网络通信或序列化等方面至关重要。 首先,我们来看byte数组与short之间的转换。在Java中,byte...

    java byte数组与int,long,short,byte的转换实现方法

    本文将详细介绍如何在Java中将`byte`数组与其他基本数据类型(如`int`、`long`、`short`、`byte`)之间进行转换。 首先,我们来看`byte`到`int`的转换。Java中的`byte`类型是8位的,取值范围是-128到127。如果要将...

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

    在Java编程语言中,有时我们需要将整型(int)数据与字节数组(byte[])之间进行转换,这在处理网络通信、序列化或存储数据时尤为常见。本文将深入探讨Java中int与byte[]的转换方法。 首先,让我们理解为什么需要进行...

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

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

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

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

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

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

    Java中byte、byte数组与int、long的转换详解

    - **byte转int**:转换`byte`到`int`时,Java会默认将其视为有符号整数。为了得到无符号的`byte`值,我们需要进行位操作,如`b & 0xFF`,这会移除`byte`的高32位并保留低8位。 2. **Java中byte数组和int之间的转换...

    Java任意长度byte数组转换为int数组的方法

    Java任意长度byte数组转换为int数组的方法 Java语言中,byte数组和int类型数据的转换是一件非常重要的事情。由于Java中int类型数据占据32 bit,而byte占据8 bit,因此可以将四个byte转换成一个int类型数据。但是,...

    java数据类型转byte数组

    ip地址转4字节byte,char转2字节byte,byte数组转char,int整数转换为4字节的byte数组,byte数组转换为int整数,double类型转8字节数组,8位数组转double,long整数转换为8字节的byte数组,short整数转换为2字节的...

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

    在Java编程语言中,基本类型的变量(如`short`、`int`、`long`、`char`、`double`和`float`)和`byte`数组之间的相互转换是一项非常实用的技术,尤其是在网络通信、文件读写等场景下。下面将详细介绍如何进行这些...

    java int转byte和long转byte的方法

    // &0xff将byte值无差异转成int,避免Java自动类型提升后,会保留高位的符号位 int v1 = (a[1] & 0xff) ; int v2 = (a[2] & 0xff) ; int v3 = (a[3] & 0xff); return v0 + v1 + v2 + v3; } ``` 该方法首先从`byte...

    java中两个byte数组实现合并的示例

    本文将深入探讨如何在Java中实现两个`byte`数组的合并,以及一些相关的操作,如数组反转和加密。 首先,我们来看一下标题和描述中提到的示例代码。这个简单的函数`addBytes`接收两个`byte`类型的数组`data1`和`data...

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

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

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

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

Global site tag (gtag.js) - Google Analytics