参考:byte[]数组和int之间的转换
文章目录
- Byte转为INT
- 小端存储方式转int
- 大端存储方式转int
大端模式和小端模式是计算机存储多字节数据时的两种方式。内存地址从小往大增长。
大端模式:最高有效(最高位)的字节存放在最小地址上,其他字节依次向后排列。读取时,最先读到的是最重要的字节。
小端模式:最不重要的字节存放在最小地址上,其他字节依次向前排列。
Byte转为INT
小端存储方式转int
// 示例字节数组,表示小端存储的整数 byte[] bytes = new byte[] { 0x0E, 0x00, 0x00, 0x00 }; int value =BitConverter.ToInt32(bytes,0); // 方法1:系统函数(字节数组,起始位置) Console.WriteLine("1-小端存储值为{0}",value); // 或者方法2 value = 0; for (int i = 0; i < 4; i++) { value |= (bytes[i] & 0xFF) << (i * 8); } Console.WriteLine("2-小端存储的值为{0}",value);
输出:
1-小端存储值为14 2-小端存储的值为14
系统函数参考这里。
大端存储方式转int
// 示例字节数组,表示小端存储的整数 byte[] bytes = new byte[] { 0x0E, 0x00, 0x00, 0x00 }; // 方法一 Array.Reverse(bytes); // 反转字节数组顺序 int value =BitConverter.ToInt32(bytes,0); Console.WriteLine("3-大端存储值为{0}",value); bytes = new byte[] { 0x0E, 0x00, 0x00, 0x00 }; value = 0; // 或者方法二 for (int i = 0; i < 4; i++) { // 将字节值合并到结果整数中,注意字节顺序的反转 value |= (bytes[i] & 0xFF) << ((3 - i) * 8); } Console.WriteLine("4-大端存储的值为{0}",value);
输出:
3-大端存储值为234881024 4-大端存储的值为234881024
猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章