c#中的BitConverter的java实现
创始人
2024-11-11 18:06:54
0

最近在做c#项目的java迁移,发现部分C#方法java中没有对应实现如图:

且java中的数字类型都是有符号的所以转无符号的时候需要进行手动对符号位& 0xFFFF进行处理,目前只整理了项目中使用到的方法,后续有用到其他方法在进行追加如下:

public class BitConverterUtil {     /**      * 将字节数组中的两个字节(从指定的索引位置开始)转换为无符号的16位整数。      *      * @param array 包含要转换的字节的数组      * @param index 数组中要开始转换的字节的索引位置      * @return 转换后的无符号16位整数      * @throws IndexOutOfBoundsException 如果index小于0或者index+2大于array的长度      */     public static int ToUInt16(byte[] array, int index) {         return ByteBuffer.wrap(array, index, 2)                 .order(ByteOrder.LITTLE_ENDIAN)                 .getShort() & 0xFFFF;     }      /**      * 将字节数组中的两个字节转换为有符号的16位整数(short)。      *      * @param array 包含要转换的字节的数组      * @param index 数组中要开始转换的字节的索引位置      * @return 转换后的有符号16位整数(short)      * @throws IndexOutOfBoundsException 如果索引位置小于0或大于等于数组长度减去1(因为需要两个字节)      */     public static short ToInt16(byte[] array, int index) {         return ByteBuffer.wrap(array, index, 2)                 .order(ByteOrder.LITTLE_ENDIAN)                 .getShort();     }      /**      * 将字节数组中的四个字节(从指定的索引位置开始)转换为无符号的32位整数(Long类型)。      *      * @param array 包含要转换的字节的数组      * @param index 数组中要开始转换的字节的索引位置      * @return 转换后的无符号32位整数(Long类型),范围为0到4294967295(即2^32-1)      * @throws IndexOutOfBoundsException 如果索引位置小于0或者索引位置加上4(表示要读取的字节数)大于数组长度      */     public static Long ToUInt32(byte[] array, int index) {         return ByteBuffer.wrap(array, index, 4)                 .order(ByteOrder.LITTLE_ENDIAN)                 .getInt() & 0xFFFFFFFFL;     }      /**      * 将给定字节数组从指定索引位置开始的四个字节转换为一个32位整数。      *      * @param array 包含要转换的字节的数组      * @param index 数组中要开始转换的字节的索引位置      * @return 转换后的32位整数      * @throws IndexOutOfBoundsException 如果索引位置小于0或索引位置加4超过数组长度      */     public static int ToInt32(byte[] array, int index) {         return ByteBuffer.wrap(array, index, 4)                 .order(ByteOrder.LITTLE_ENDIAN)                 .getInt();     } }

再此记录一下,以备不时之需。

相关内容

热门资讯

4分钟辅助!天天手游辅助工具,... 4分钟辅助!天天手游辅助工具,好像存在有辅助脚本(有挂秘诀)1、起透看视 天天手游辅助工具辅助软件价...
7分钟辅助!微乐小程序自建房辅... 7分钟辅助!微乐小程序自建房辅助,都是有辅助方法(有人有挂)1、玩家可以在微乐小程序自建房辅助线上大...
2分钟辅助!约局吧辅助器,本来... 2分钟辅助!约局吧辅助器,本来真的有辅助插件(的确有挂)1、约局吧辅助器破解器简单,约局吧辅助器机器...
三分钟辅助!微乐自建房辅助工具... 三分钟辅助!微乐自建房辅助工具,确实有辅助挂(存在有挂)1、很好的工具软件,可以解锁游戏的微乐自建房...
8分钟辅助!巴郎新疆开挂,一直... 8分钟辅助!巴郎新疆开挂,一直有辅助工具(有挂详情)1、巴郎新疆开挂透视辅助软件激活码多个强度级别选...
五分钟辅助!温州茶苑手机辅助器... 五分钟辅助!温州茶苑手机辅助器,好像真的有辅助软件(有挂技巧)1、每一步都需要思考,不同水平的挑战温...
两分钟辅助!白金岛手游的作弊码... 两分钟辅助!白金岛手游的作弊码,其实真的是有辅助挂(有挂细节)1、白金岛手游的作弊码免费辅助多个强度...
八分钟辅助!极速暗宝辅助,一贯... 八分钟辅助!极速暗宝辅助,一贯真的有辅助技巧(有挂神器)1、许多玩家不知道极速暗宝辅助辅助怎么退出观...
一分钟辅助!创乐源辅助软件,果... 一分钟辅助!创乐源辅助软件,果然有辅助工具(有挂讲解)1、一分钟辅助!创乐源辅助软件,果然有辅助工具...
8分钟辅助!微乐自建房辅助多少... 8分钟辅助!微乐自建房辅助多少钱一个月,真是真的是有辅助工具(有挂讲解)小薇(辅助器软件下载)致您一...