阅读 115

java 实现取int型的第二个字节的数

这篇文章主要介绍了java 实现取int型的第二个字节的数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

目录
  • 取int型的第二个字节的数

    • 1.首先创建 Bytebuffer

    • 2.通过位运算计算

    • 3.附一个int转byte数组

  • int的取值范围

    • 例如7的二进制表示形式为

    • 例如-7的二进制表示为

取int型的第二个字节的数

无意中看到某个题目,前提条件,一个byte最多表示256位,因为其是由8个位表示 ,八个1 最多表示256位。

一个int由32位组成,所以是4个byte表示。题目要求是给定一个int数字,问第二个byte是多少。刚开始不会写。

再后来复习nio时,突然想到这题。

1.首先创建 Bytebuffer

其内部是由byte组成的数组。因为我们保存一个int 只需要创建一个大小为4byte的即可。下面看代码。

1
2
3
4
5
  public static void main(String[] args) throws IOException {
        ByteBuffer bb=ByteBuffer.allocate(4); //创建大小为4的byteBuffer
        bb.asIntBuffer().put(5566); //以int视图将任意int数存进去      
        System.out.println(Arrays.toString(bb.array()));    //打印出改bytebuffer,其中想要第几个byte就取出就好了
    }

结果

[0, 0, 21, -66]

2.通过位运算计算

首先 

int  a=5566;

a=a>>8;

a=a&0xff;

得到的a就是 第二位的值


3.附一个int转byte数组

1
2
3
4
5
6
7
8
  private static  byte[] intToByte(int in){
    byte [] b=new byte[4];
    b[3]= (byte) (in&0xff);
    b[2]= (byte) (in>>8 &0xff);
    b[1]= (byte) (in>>16 &0xff);
    b[0]= (byte) (in>>24 &0xff);
    return b;
    }

int的取值范围

int型的数据字节长度是4,一共是32位,第一位用于表示正负号,其他位的数字组成它所代表的值,

例如7的二进制表示形式为

00000000 00000000 00000000 00000111

当表示负数的时候,则采用的是补码的形式,第一位是1,

例如-7的二进制表示为

11111111 11111111 11111111 11111001

int型数据的取值范围:-2^31—-2^31-1

以上为个人经验,希望能给大家一个参考

原文链接:https://blog.csdn.net/woaiqianzhige/article/details/79954241


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐