byte[]数组和int之间的转换(转)

本帖转自:h t t p://blog.csdn.net/sunnyfans/article/details/8286906

1、int与byte[]之间的转换(类似的byte short,long型)

 1  /**
 2      * 将int数值转换为占四个字节的byte数组,本方法适用于(低位在前,高位在后)的顺序。 和bytesToInt()配套使用
 3      * @param value
 4      *            要转换的int值
 5      * @return byte数组
 6      */
 7     public static byte[] intToBytes( int value )
 8     {
 9         byte[] src = new byte[4];
10         src[3] =  (byte) ((value>>24) & 0xFF);
11         src[2] =  (byte) ((value>>16) & 0xFF);
12         src[1] =  (byte) ((value>>8) & 0xFF);
13         src[0] =  (byte) (value & 0xFF);
14         return src;
15     }
16      /**
17      * 将int数值转换为占四个字节的byte数组,本方法适用于(高位在前,低位在后)的顺序。  和bytesToInt2()配套使用
18      */
19     public static byte[] intToBytes2(int value)
20     {
21         byte[] src = new byte[4];
22         src[0] = (byte) ((value>>24) & 0xFF);
23         src[1] = (byte) ((value>>16)& 0xFF);
24         src[2] = (byte) ((value>>8)&0xFF);
25         src[3] = (byte) (value & 0xFF);
26         return src;
27     }

byte[]转int

 1  /**
 2      * byte数组中取int数值,本方法适用于(低位在前,高位在后)的顺序,和和intToBytes()配套使用
 3      *
 4      * @param src
 5      *            byte数组
 6      * @param offset
 7      *            从数组的第offset位开始
 8      * @return int数值
 9      */
10     public static int bytesToInt(byte[] src, int offset) {
11         int value;
12         value = (int) ((src[offset] & 0xFF)
13                 | ((src[offset+1] & 0xFF)<<8)
14                 | ((src[offset+2] & 0xFF)<<16)
15                 | ((src[offset+3] & 0xFF)<<24));
16         return value;
17     }
18
19      /**
20      * byte数组中取int数值,本方法适用于(低位在后,高位在前)的顺序。和intToBytes2()配套使用
21      */
22     public static int bytesToInt2(byte[] src, int offset) {
23         int value;
24         value = (int) ( ((src[offset] & 0xFF)<<24)
25                 |((src[offset+1] & 0xFF)<<16)
26                 |((src[offset+2] & 0xFF)<<8)
27                 |(src[offset+3] & 0xFF));
28         return value;
29     }

第二种:

1、int与byte[]之间的转换(类似的byte short,long型)

 1      /**
 2      * 将int数值转换为占四个字节的byte数组,本方法适用于(低位在前,高位在后)的顺序。
 3      * @param value
 4      *            要转换的int值
 5      * @return byte数组
 6      */
 7     public static byte[] intToBytes(int value)
 8     {
 9         byte[] byte_src = new byte[4];
10         byte_src[3] = (byte) ((value & 0xFF000000)>>24);
11         byte_src[2] = (byte) ((value & 0x00FF0000)>>16);
12         byte_src[1] = (byte) ((value & 0x0000FF00)>>8);
13         byte_src[0] = (byte) ((value & 0x000000FF));
14         return byte_src;
15     }

byte[]转int

 1      /**
 2      * byte数组中取int数值,本方法适用于(低位在前,高位在后)的顺序。
 3      *
 4      * @param ary
 5      *            byte数组
 6      * @param offset
 7      *            从数组的第offset位开始
 8      * @return int数值
 9      */
10     public static int bytesToInt(byte[] ary, int offset) {
11         int value;
12         value = (int) ((ary[offset]&0xFF)
13                 | ((ary[offset+1]<<8) & 0xFF00)
14                 | ((ary[offset+2]<<16)& 0xFF0000)
15                 | ((ary[offset+3]<<24) & 0xFF000000));
16         return value;
17     }
时间: 2024-10-29 19:07:47

byte[]数组和int之间的转换(转)的相关文章

byte[]数组和int之间的转换

unsigned char head[2];            //标识头    0x64,0xa4 unsigned char cmd;                //命令号,  0x03 unsigned char cmd_id;             //命令类型,0x00 unsigned char serial[6];          //设备序列号,MAC 地址 unsigned char cmd_len[2];         //命令长度,低位在前 unsigned 

【转】java中byte数组与int类型的转换(两种方式)----不错

原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. 第一种方法: public static byte[] int2byte(int

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

java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. 方法一 /** * int到byte[] * @param i * @return */ public static byte[] intToByteArray(int i) { byte[] resu

NSNumber和Int之间的转换

int 转 NSNumber: [NSNumber numberWithInt:(int)]; NSNumber 转 int [(NSNumber) intValue]; 其他数据类型类似 有些数组只能存Object对象,所以需要将普通数据类型转换成为Object型. NSNumber和Int之间的转换,布布扣,bubuko.com

byte数组与对象之间的相互转换

在进行网络通信时可能需要传输对象,如果用NIO的话,只能用Bytebuffer和channel直接 通过ByteArray*Stream和Object*Stream可以将byte数组和对象进行相互的转换. 1.byte数组转对象: byte [] data=initData();//初始化byte数组 ByteArrayInputStream inputStream=new ByteArrayInputStream(data); ObjectInputStream oInputStream=ne

Delphi Byte数组与String类型的转换

string string = AnsiString = 长字符串,理论上长度不受限制,但其实受限于最大寻址范围2的32次方=4G字节: 变量Str名字是一个指针,指向位于堆内存的字符序列,字符序列起始于@Str[1],@Str[1]偏移负16个字节的空间存储着字串长度.引用计数等信息.字符序列以NULL结束. string[n] string[n] = ShortString = 短字符串,最多容纳255个字符,实际长度是字符长度+1,是Delphi的简单类型: Str[0]存储着字符的个数,

[Java] java byte数组与int,long,short,byte转换

public class DataTypeChangeHelper { /** * 将一个单字节的byte转换成32位的int * * @param b *            byte * @return convert result */ public static int unsignedByteToInt(byte b) { return (int) b & 0xFF; } /** * 将一个单字节的Byte转换成十六进制的数 * * @param b *            byt

byte数组与int,long,short,byte转换 (转载)

byte数组和short数组转换 public short bytesToShort(byte[] bytes) { return ByteBuffer.wrap(bytes).order(ByteOrder.LITTLE_ENDIAN).getShort(); } public byte[] shortToBytes(short value) { return ByteBuffer.allocate(2).order(ByteOrder.LITTLE_ENDIAN).putShort(valu

Delphi Byte数组与Int String之间的相互转换

http://www.cnblogs.com/lcw/p/3352864.html string string = AnsiString = 长字符串,理论上长度不受限制,但其实受限于最大寻址范围2的32次方=4G字节: 变量Str名字是一个指针,指向位于堆内存的字符序列,字符序列起始于@Str[1],@Str[1]偏移负16个字节的空间存储着字串长度.引用计数等信息.字符序列以NULL结束. string[n] string[n] = ShortString = 短字符串,最多容纳255个字符