2019-8-31-C#-大端小端转换
2023-09-27 14:28:53 时间
title | author | date | CreateTime | categories |
---|---|---|---|---|
C# 大端小端转换 |
lindexi |
2019-08-31 16:55:58 +0800 |
2018-05-28 10:21:59 +0800 |
C# |
关于大端和小端,是一个有趣的问题。本文告诉大家如何在C#转换大端和小端。
这里有一个有趣的故事,请看详解大端模式和小端模式 - CSDN博客
默认的 C# 使用的是小端,如果收到的消息是大端,那么就会出现解析错误。
例如收到的数据是 byte 数组,现在知道数据是大端数据,需要把大端转小端,首先需要把数据复制出来。
复制数组
假设收到的数据是 data ,里面的前两个 byte 是不需要的,格式是
也就是需要复制出第2个到第5个byte出来,转换这个数据反序。
复制数组的方式有很多个,例如 Array.Copy 和 Buffer.BlockCopy 两个函数使用方式差不多
下面我使用 Array.Copy 做例子
首先定义一个数组用来反序
var revertByteList = new byte[4];
然后复制数据
Array.Copy(data, 2, revertByteList, 0, 4);
对数据反序,这样就转换大端
revertByteList = revertByteList.Reverse().ToArray();
数组转整数
从数组转整数的方式很简单,使用下面代码就可以转换
var n = BitConverter.ToInt32(revertByteList, 0);
小端转大端就是先把 int 转 byte ,然后按照每 4 个 byte 反序就可以
相关文章
- C#程序员经常用到的10个实用代码片段
- c# Standard numeric format strings
- C#开发微信门户及应用(25)-微信企业号的客户端管理功能
- C# byte[]、struct、intptr等的相互转换
- [置顶] c# 验证码生成
- C# – 冷知识 (新手)
- c#:无法将类型为“System.DBNull”的对象强制转换为类型“System.String”
- c#:treeview双击某个节点的事件
- c# DateTime时间格式和JAVA时间戳格式相互转换
- C# 多线程是否结束可通过线程池可以判断
- C#连接mysql数据库插入数据后获取自增长主键ID值
- C#图像处理-OpenCVSharp教程(八) OpenCVSharp基本绘图函数:绘制线、圆、矩形、椭圆、文字等
- C# 创建windows 服务
- C# 单据审批流方案
- C#底层库--文件操作类(文件重命名、目录移动、字节流转换)
- C# 以函数Action/Func/Task作为方法参数
- c# 字节数组和类相互转换
- ASP.NET Core(C#) 字符串常用处理转换的扩展方法工具类
- 用C#实现修改网页数据
- C#直接使用DllImport外部Dll的方法
- C#使用Newtonsoft.Json进行json数据存储和转换
- 2018-9-30-C#-winforms-输入颜色转换颜色名
- 2019-8-31-C#-转换类型和字符串
- C# 转换类型和字符串
- C# wpf 使用资源文件 resx