课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > java int转byte和long转byte
  • java int转byte和long转byte

    发布:昆明Java培训      来源:达内新闻      时间:2016-10-11

  • 昆明达内Java培训的老师今天给大家讲java int转byte和long转byte。

    在网络编程中,出于节约带宽或者编码的需要,通常需要以原生方式处理long和int,而不是转换为string。

    public class ByteOrderUtils {

    public static byte[] int2byte(int res) {

    byte[] targets = ew 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 = ew 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;

    }

    }

    ========================================================================

    擅长于大规模高并发j2ee soa体系系统架构设计与实现,精通j2ee系统性能分析与优化。

    精通oltp&dss oracle&mysql数据库设计、性能分析与优化、HA、分库分表应用架构设计与实现。

    学Java开发就到昆明达内Java培训班!了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

    推荐文章

上一篇:【昆明Java培训班】RabbitMQ的简介

下一篇:StringUtils中isNotEmpty和isNotBlank有什么样的区别

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56