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变量。

  • 相关阅读:
    第二阶段冲刺第二天
    第二阶段冲刺第一天
    学习进度表_十四周
    购买图书
    学习进度表_十三周
    寻找水王续
    学习进度表_十二周
    《梦断代码》读后笔记_4
    找水王
    学习进度表_十一周
  • 原文地址:https://www.cnblogs.com/yueliming/p/2773399.html
Copyright © 2011-2022 走看看