代码1:
将int类型转换为byte数组:
int n = 12345;
byte[] b = new byte[4];
b[0] = (byte)n;
b[1] = (byte)(n >> 8);
b[2] = (byte)(n >> 16);
b[3] = (byte)(n >> 24);
点评:该代码结构清晰,执行效率高,在存储时将int类型的4个字节按照从低到高的顺序依次存储到byte数组b中,
利用移位和byte类型的强制转换轻松实现int类型中4个字节的分割。
将byte数组转换为int类型:
int m = (b[0] & 0xff) | ((b[1] << 8) & 0xff00) |
((b[2] << 16) & 0xff0000) |((b[3] << 24) & 0xff000000);
代码2:
将int转换为byte数组
int n = 12345;
String s = String.valueOf(n);
byte[] b = s.getBytes();
将byte数组转换为int
String s1 = new String(b1);
int m = Integer.parseInt(s1);
点评:代码2虽然在代码行数上比代码1少,但是无论是在程序的执行效率还是内存使用上都比代码2差了很多,
每次转换时都需要生成一个String对象,这样不但浪费了内存,也降低了程序的执行速度。
转载自http://blog.csdn.net/Mailbomb/archive/2010/05/31/5636108.aspx