整型int和字节数组byte相互转换
2011-01-27 10:40
525 查看
public class Test { public static void main(String args[] ) { int i = 212123; byte[] b = toByteArray(i, 4); //整型到字节, System.out.println( "212123 bin: " + Integer.toBinaryString(212123));//212123的二进制表示 System.out.println( "212123 hex: " + Integer.toHexString(212123)); //212123的十六进制表示 for(int j=0;j<4;j++){ System.out.println("b["+j+"]="+b[j]);//从低位到高位输出,java的byte范围是-128到127 } int k=toInt(b);//字节到整型,转换回来 System.out.println("byte to int:"+k); } // 将iSource转为长度为iArrayLen的byte数组,字节数组的低位是整型的低字节位 public static byte[] toByteArray(int iSource, int iArrayLen) { byte[] bLocalArr = new byte[iArrayLen]; for ( int i = 0; (i < 4) && (i < iArrayLen); i++) { bLocalArr[i] = (byte)( iSource>>8*i & 0xFF ); } return bLocalArr; } // 将byte数组bRefArr转为一个整数,字节数组的低位是整型的低字节位 public static int toInt(byte[] bRefArr) { int iOutcome = 0; byte bLoop; for ( int i =0; i<4 ; i++) { bLoop = bRefArr[i]; iOutcome+= (bLoop & 0xFF) << (8 * i); } return iOutcome; } }
输出:
212123 bin: 110011110010011011
212123 hex: 33c9b
b[0]=-101
b[1]=60
b[2]=3
b[3]=0
byte to int:212123
注:
上面的toInt()也可以这样定义
public static int toInt(byte[] bRefArr) { int iOutcome = 0; byte bLoop; for ( int i =0; i<4 ; i++) { bLoop = bRefArr[i]; iOutcome = iOutcome | (bLoop & 0xFF) << (8 * i); } return iOutcome; }
本文转自:http://snowlotus.javaeye.com/blog/246512
相关文章推荐
- 整型int和字节数组byte相互转换
- 整型变量(int)与字节数组(byte[])的相互转换
- 整型变量(int)与字节数组(byte[])的相互转换
- 整型int和字符数组byte相互转换的源程序
- Unity3D中的socket通信之八(字节数组与数据转换dll-byte int string float)
- byte数组和Int之间的相互转换
- int与byte数组相互转换
- C#中字节数组(byte[])和字符串相互转换
- 字节数组byte[]和整型,浮点型数据的转换——Java代码
- C# 图片与字节数组(byte[])二进制相互转换,获取大小像素扩展名
- int和byte数组相互转换
- String,int,char,byte[]数组的相互转换
- VB 长整型和字节数组的转换问题 (LongByte)
- java中int、long与byte数组相互转换
- C#--整型与字节数组byte[]之间的转换
- java中的int类型和byte数组的相互转换
- int long String与字节数组的相互转换
- Java_语法基础_4字节的byte数组与int之间的转换
- java int与byte[]数组的相互转换 补码
- VB 长整型和字节数组的转换问题 (Long<>Byte)