开发者社区> newtrek> 正文

java byte处理

简介: /** * 四字节转int,适用于低位在前,高位在后 * @param bytes * @param index * @return */ public static int getIn...
+关注继续查看
/**
     * 四字节转int,适用于低位在前,高位在后
     * @param bytes
     * @param index
     * @return
     */
        public static int getInt_1(byte[] bytes,int index){
            int value=(int)((bytes[index]&0xff)
                    |(bytes[index+1]<<8&0xff00)
                    |(bytes[index+2]<<16&0xff0000)
                    |(bytes[index+3]<<24&0xff000000));
           return value;
        }

    /**
     * int 转为长度为4的字节数组,适用于高位在后,低位在前
     * @param value
     * @return
     */
    public static byte[] getBytesFromInt_1(int value){
            byte[] temp=new byte[4];
            temp[3]=(byte) ((value&0xff000000)>>24);
            temp[2]=(byte) ((value&0xff0000)>>16);
            temp[1]=(byte) ((value&0xff00)>>8);
            temp[0]=(byte) ((value&0xff));
            return temp;
        }


    /**
     * 四字节转int,适用于低位在后,高位在前
     * @param bytes
     * @param index
     * @return
     */
        public static int getInt_2(byte[] bytes,int index){
            int value=(int)((bytes[index]<<24&0xff000000)
                    |(bytes[index+1]<<16&0xff0000)
                    |(bytes[index+2]<<8&0xff00)
                    |(bytes[index+3]&0xff)
                    );
            return value;
        }

    /**
     * int 转为长度为4的字节数组,适用于高位在前,低位在后
     * @param value
     * @return
     */
    public static byte[] getBytesFromInt_2(int value){
        byte[] temp=new byte[4];
        temp[0]=(byte) ((value&0xff000000)>>24);
        temp[1]=(byte) ((value&0xff0000)>>16);
        temp[2]=(byte) ((value&0xff00)>>8);
        temp[3]=(byte) ((value&0xff));
        return temp;
    }

    /**
     * 2字节数组转换为short,适用于低位在前,高位在后
     * @param bytes
     * @param index
     * @return
     */
    public static short getShort_1(byte[] bytes,int index){
        return (short)(
                (bytes[index]&0xff)
                |(bytes[index+1]<<8&0xff00)
                );
    }

    /**
     * short转长度为2的字节数组,低位在前,高位在后
     * @param value
     * @return
     */
    public static byte[]  getBytesFromShort_1(short value){
        byte[] temp=new byte[2];
        temp[0]=(byte) (value&0xff);
        temp[1]=(byte)(value>>8&0xff00);
        return temp;
    }
    /**
     * 2字节数组转换为short,适用于低位在后,高位在前
     * @param bytes
     * @param index
     * @return
     */
    public static short getShort_2(byte[] bytes,int index){
        return (short)(
                (bytes[index+1]&0xff)
                |(bytes[index]<<8&0xff00)
                );
    }
    /**
     * short转长度为2的字节数组,低位在后,高位在前
     * @param value
     * @return
     */
    public static byte[]  getBytesFromShort_2(short value){
        byte[] temp=new byte[2];
        temp[1]=(byte) (value&0xff);
        temp[0]=(byte)(value>>8&0xff00);
        return temp;
    }

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
19111 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
23940 0
+关注
newtrek
王家兴,男,90后草根站长,技术宅,有时间就晚上出去跑跑步 目前的博客,除了一些笔记,其它全部原创输出,就当自己瞎写吧,反正前期也没指望有人看。 爱逛技术社区,看书,王者荣耀,美剧《硅谷》 主要擅长Android应用开发,但目前还没达到高级工程师级别,正在向这个目标努力。
64
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载