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();     } }

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

相关内容

热门资讯

规律教程!xpoker辅助助手... 规律教程!xpoker辅助助手德州辅助app官方最新版本介绍下载(果真真的有挂)1、每一步都需要思考...
详细教程!!wpk私人辅助德扑... 详细教程!!wpk私人辅助德扑之星透视软件(一直真的有挂)1、下载好wpk私人辅助辅助软件之后点击打...
教你教程!cloudpoker... 教你教程!cloudpoker外挂WePOKer有没有透视方法(一般真的有挂)1、cloudpoke...
专业教程!wejoker黑侠辅... 专业教程!wejoker黑侠辅助器HHpoker可以开挂吗(一贯真的有挂);进入游戏-大厅左侧-新手...
透牌教程!哈糖大菠萝辅助器we... 透牌教程!哈糖大菠萝辅助器wepoker到底能不能透视(都是真的有挂);1、首先打开哈糖大菠萝辅助器...
2025新版技巧!wpk模拟器... 2025新版技巧!wpk模拟器是什么天天畅玩德州有挂吗(好像真的有挂);1、首先打开wpk模拟器是什...
新版2025教程!wepoke... 新版2025教程!wepoker有没有透视方法wpk德州辅助(的确是有挂的)1、点击下载安装,wep...
扑克教程!!impoker辅助... 扑克教程!!impoker辅助wepoker私人局作弊开挂方法(其实真的有挂);一、impoker辅...
wpk教程!pokemmo脚本... wpk教程!pokemmo脚本手机版wepoker德州开挂辅助方法(的确是有挂的)1、构建自己的po...
攻略教程!!菠萝辅助器免费版的... 攻略教程!!菠萝辅助器免费版的功能介绍德州大菠萝摆牌攻略(一贯真的有挂)1)菠萝辅助器免费版的功能介...