这里有新鲜出炉的Java函数式编程,程序狗速度看过来!
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
下面小编就为大家带来一篇java int转byte和long转byte的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
在网络编程中,出于节约带宽或者编码的需要,通常需要以原生方式处理long和int,而不是转换为string。
- public class ByteOrderUtils {
- public static byte[] int2byte(int res) {
- byte[] targets = new byte[4];
- targets[3] = (byte)(res & 0xff); // 最低位
- targets[2] = (byte)((res >> 8) & 0xff); // 次低位
- targets[1] = (byte)((res >> 16) & 0xff); // 次高位
- targets[0] = (byte)(res >>> 24); // 最高位,无符号右移。
- return targets;
- }
- public static int byteArrayToInt(byte[] b) {
- byte[] a = new byte[4];
- int i = a.length - 1,
- j = b.length - 1;
- for (; i >= 0; i--, j--) { //从b的尾部(即int值的低位)开始copy数据
- if (j >= 0) a[i] = b[j];
- else a[i] = 0; //如果b.length不足4,则将高位补0
- }
- int v0 = (a[0] & 0xff) << 24; //&0xff将byte值无差异转成int,避免Java自动类型提升后,会保留高位的符号位
- int v1 = (a[1] & 0xff) << 16;
- int v2 = (a[2] & 0xff) << 8;
- int v3 = (a[3] & 0xff);
- return v0 + v1 + v2 + v3;
- }
- public static byte[] long2byte(long res) {
- byte[] buffer = new byte[8];
- for (int i = 0; i < 8; i++) {
- int offset = 64 - (i + 1) * 8;
- buffer[i] = (byte)((res >> offset) & 0xff);
- }
- return buffer;
- }
- public static long byteArrayToLong(byte[] b) {
- long values = 0;
- for (int i = 0; i < 8; i++) {
- values <<= 8;
- values |= (b[i] & 0xff);
- }
- return values;
- }
- }
来源: http://www.phperz.com/article/17/1120/359784.html