zoukankan      html  css  js  c++  java
  • 贴一个按位转换类型的方法

       最近一个项目用到向终端发送数据的方法,终端是16位(4字节)的。所以需要把Int型转换为32位的,在终端按照4个字节读出,写了下面的转换方法:

     1public static class MyMath
     2{
     3    /**
     4     * 把一个整数转化为byte array
     5     * 
     6     * @param num
     7     *            待转化的整数
     8     * @param len
     9     *            长度
    10     * @return byte array
    11     */

    12    public static  byte[] intToBytes(int num, int len)
    13    {
    14        byte[] b = new byte[len];
    15        int sw = ((len - 1* 8);
    16        int mask = (0xff << sw);
    17        for (int l = 0; l < len; l++)
    18        {
    19            b[l] = (byte)(((uint)num & mask) >> sw);
    20            sw -= 8;
    21            mask >>= 8;
    22        }

    23        return b;
    24    }

    25
    26    /**
    27     * 把byte [] 转化为int
    28     * 
    29     * @param b
    30     *            byte[]
    31     * @param offset
    32     *            开始位置
    33     * @param size
    34     *            长度
    35     * @return int
    36     */

    37   public static int bytesToInt(byte[] b, int offset, int size) {
    38        int num = 0;
    39        int sw = 8 * (size - 1);
    40        for (int loop = 0; loop < size; loop++{
    41            num |= ((int) b[offset + loop] & 0x00ff<< sw;// 整数太大,清零
    42            sw -= 8;
    43        }

    44        return (num);
    45    }

    46}

    测试:

     int iPut = 44;
            byte[] b = MyMath.intToBytes(iPut, 4);

            int i = MyMath.bytesToInt(b, 0, 4);

  • 相关阅读:
    Hacking Tools
    SDN 网络系统之 Mininet 与 API 详解
    Rust安装配置
    研华 FWA-3231 单路E3平台
    Netscaler Configuration Architecture
    TCP拥塞控制算法纵横谈-Illinois和YeAH
    TCP协议疑难杂症全景解析
    Windows WMIC命令使用详解(附实例)
    Windows一个文件夹下面最多可以放多少文件
    喝酒游戏,概率分布和卷积
  • 原文地址:https://www.cnblogs.com/onekey/p/307174.html
Copyright © 2011-2022 走看看