zoukankan      html  css  js  c++  java
  • java中整形变量与字节数组的转换

      一直搞不清楚整形变量与字节数组的转换,看过各位网友的解释,现写下此随笔:

    • 整形变量转换成字节数组  

        对于int类型变量a,将其转换为字节数组b,方法如下:      

            int a = 100;
            byte[] b = byte[4];
            
            b[3] = (byte)(a & 0xff);
            b[2] = (byte)(a>>8 & 0xff);
            b[1] = (byte)(a>>16 & 0xff);
            b[0] = (byte)(a>>24 & 0xff);
            
    
    • 字节数组转换成整形变量

        将刚才得到的字节数组b转换成整形变量a,

    int a = 0;
    for(int i =0; i< b.length; i++){
          a += (b[i]&0xff) << (24-8*i);
    }
    return a;

      java里对于byte变量,假如操作中有int操作数,默认会将byte隐式转换为int变量,而转换成的int变量高24位全部为1,在将byte数组转换为int变量的时候,假如直接用移位操作就会有麻烦,因为高位都是ffffff,所以需将隐式转换生成的ffffff消掉。因此,将每个字节和0xff相与,然后再移位,最后把各步产生的结果相加即可得到原始的int变量。

  • 相关阅读:
    延迟消失菜单
    控制产品上下滚动
    百度音乐全选
    百度文库评分两种代码写法
    选项卡
    搜狐视频
    m 调用传参图片切换
    IIS 7.5站点配置
    jquery plugins —— datatables 搜索后汇总
    jquery plugins —— datatables 增加行号
  • 原文地址:https://www.cnblogs.com/yueliming/p/2773399.html
Copyright © 2011-2022 走看看