zoukankan      html  css  js  c++  java
  • java中byte数组与int类型的转换(两种方式)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送、者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型。下面有两种方式。

    public static byte[] int2byte(int res) {
    byte[] targets = new byte[4];

    targets[
    0] = (byte) (res & 0xff);// 最低位
    targets[1] = (byte) ((res >> 8) & 0xff);// 次低位
    targets[2] = (byte) ((res >> 16) & 0xff);// 次高位
    targets[3] = (byte) (res >>> 24);// 最高位,无符号右移。
    return targets;
    }
    public static void main(String[] args) {  
    ByteArrayOutputStream baos
    = new ByteArrayOutputStream();
    DataOutputStream dos
    = new DataOutputStream(baos);
    try {
    dos.writeByte(
    4);
    dos.writeByte(
    1);
    dos.writeByte(
    1);
    dos.writeShort(
    217);
    }
    catch (IOException e) {
    e.printStackTrace();
    }

    byte[] aa = baos.toByteArray();
    ByteArrayInputStream bais
    = new ByteArrayInputStream(baos.toByteArray());
    DataInputStream dis
    = new DataInputStream(bais);

    try {
    System.
    out.println(dis.readByte());
    System.
    out.println(dis.readByte());
    System.
    out.println(dis.readByte());
    System.
    out.println(dis.readShort());
    }
    catch (IOException e) {
    e.printStackTrace();
    }
    try {
    dos.close();
    dis.close();
    }
    catch (IOException e) {
    e.printStackTrace();
    }
    }

  • 相关阅读:
    web.xml中的contextConfigLocation在spring中的作用
    folder、source folder、package 区别与联系
    mysql
    十六进制浮点转十进制浮点型
    float浮点数的二进制存储方式及转换
    API -- java.lang.Integer
    MyISAM与InnoDB区别
    mysql timestamp类型字段的CURRENT_TIMESTAMP与ON UPDATE CURRENT_TIMESTAMP属性
    刷新当前页面
    正则表达式
  • 原文地址:https://www.cnblogs.com/cpcpc/p/2167889.html
Copyright © 2011-2022 走看看