Skip to content

常用工具类方法

ray.zh edited this page Dec 13, 2023 · 3 revisions

框架中附带一些工具类方法,可以很方便开发,转换以及打印输出:

  1. ConverterUtil.numberToByte(int, int): 该函数可以将正整数转为字节数组

    如:ConverterUtil.numberToByte(888111, 4),将十进制888111转为字节数组,字节数组长度为4(高位置零)。输出为:[0x00,0x0d,0xd2,0d2f]

  2. ConverterUtil.byteToNumber(byte[]): 该函数可以将字节数组转为正整数

    如:配合上述函数,实现字节数组到无符号数之间的转换

  3. ConverterUtil.byteToUnsigned(byte): 该函数可以将有符号数转为无符号数

    如:ConverterUtil.byteToUnsigned(0xA0) , 输出为: 160

  4. ConverterUtil.intToHexString(int): 该函数可以正数转为16进制字符串

    如:ConverterUtil.intToHexString(15533) , 输出为: "3cad"

  5. ConverterUtil.hexStringToByte(int): 该函数可以16进制字符串转为字节数组

    如:ConverterUtil.hexStringToByte("0xA8362") , 输出为: [10, -125, 98 ]

  6. ConverterUtil.byteToHexString(byte[]): 该函数可以字节数组转为16进制字符串,方便打印观察

    如:ConverterUtil.byteToHexString(new byte[]{10, -125, 98}) , 输出为: "0A8362"

  7. ConverterUtil.prettyPrintByteArray(long): 该函数可以美化打印正整数为16进制字符串

    跟之前的区别为这里每个字节之前会使用逗号隔开,方便观察 如:ConverterUtil.prettyPrintByteArray(1234123) , 输出为: "12,d4,cb"

  8. ConverterUtil.prettyPrintByteArray(long, radix, splitChar): 该函数为上一个函数具体实现,这里可以配置隔开的字符,入参的格式等

    要达到与上述相同输出,调用参数如下(注意这里我更换了分割字符): 如:ConverterUtil.prettyPrintByteArray(1234123, 16, ";") , 输出为: "12;d4;cb"

  9. MagicByte.structBytes(): 该函数可以获取结构定义的总字节数,有动态字段则返回最小字节数