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

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

相关内容

热门资讯

第6分钟晓得!安装不了wepo... 第6分钟晓得!安装不了wepoker,wepoker好友助力码(透视)详细教程(有挂技术)1、很好的...
终于清楚!德州辅助神器wpk,... 终于清楚!德州辅助神器wpk,wepokeai插件,扑克教程(了解有挂)-哔哩哔哩;德州辅助神器wp...
1分钟透视!wepoker脚本... 1分钟透视!wepoker脚本下载,pokemmo脚本辅助器(透视)安装教程(有挂方法)1、任何po...
推荐十款!德州之星外挂购买渠道... 推荐十款!德州之星外挂购买渠道,wopoker系统机制,系统教程(竟然有挂)-哔哩哔哩;德州之星外挂...
第一分钟体悟!pokemmo手... 第一分钟体悟!pokemmo手机版脚本,wepoker脚本(透视)透牌教程(有挂方法)1)pokem...
教学盘点!wpk发牌可以这离谱... 教学盘点!wpk发牌可以这离谱,德州透视辅助,介绍教程(有挂讲解)-哔哩哔哩;一、wpk发牌可以这离...
第4分钟辅助挂!拱趴大菠萝挂怎... 第4分钟辅助挂!拱趴大菠萝挂怎么安装,竞技联盟破解版最新版(透视)实用技巧(有挂分享)1、用户打开应...
一分钟教你!微扑克wpk真的有... 一分钟教你!微扑克wpk真的有辅助,aapoker俱乐部后台可以操作,揭秘攻略(有挂详情)-哔哩哔哩...
两分钟掌握!佛手在线大菠萝技巧... 两分钟掌握!佛手在线大菠萝技巧,竞技联盟辅助插件(透视)安装教程(有挂总结)1、佛手在线大菠萝技巧a...
大家学习交流!红龙扑克机制,w... 《大家学习交流!红龙扑克机制,wpk辅助器小程序,详细教程(有挂透视)-哔哩哔哩》 wpk辅助器小程...