前景提要
c#转为二进制的不同
0 悬赏园豆: 10 [待解决问题] public static bool CreateBSCommBufferFromString1(string asCmdParamText, out byte[] abytBuffer)
{
abytBuffer = new byte[4];
Array.Clear(abytBuffer, 0, 4); try { if (asCmdParamText.Length == 0) return true; byte[] bytText = System.Text.Encoding.UTF8.GetBytes(asCmdParamText); byte[] bytTextLen = BitConverter.GetBytes(Convert.ToUInt32(bytText.Length + 1)); abytBuffer = new byte[4 + bytText.Length + 1]; bytTextLen.CopyTo(abytBuffer, 0); bytText.CopyTo(abytBuffer, 4); abytBuffer[4 + bytText.Length] = 0; return true; } catch { abytBuffer = new byte[4]; Array.Clear(abytBuffer, 0, 4); return false; } }
这样转为二进制的方式和
byte[] bytText = System.Text.Encoding.UTF8.GetBytes(asCmdParamText);这个方法 有什么区别吗 转化为二进制 凤城沙子 | 初学一级 | 园豆: 134
提问于:2019-05-13 13:42 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(1) 0 CreateBSCommBufferFromString1 出来的byte[],带上了一些额为的信息。
var str="123";
CreateBSCommBufferFromString1(str,out arr)//output: [0,0,0,3,1,2,3,0]
0,0,0,3:bytTextlen,原始数据长度。
1,2,3:原始数据
0:最后一位的补0.
这个应该是在做类似自定义传输协议的封装,数据序列化/反序列都有一定格式
在解析的时候,先读取4byte,知道数据的长度,在读取len的真实数据,在然后读取一个0,作为2部分数据的分割符号。 czd890 | 园豆:8909 (大侠五级) | 2019-05-13 14:35 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。