关于char[]、byte[]数组转换的问题
项目需要用socket跟硬件通讯,然后给了我一个很糙文档让我写通讯接口,里面还是用C写的,现在我是一脸懵逼的样子
文档如下:
通用数据协议格式:<指令1B>+<指令1B>+<数据长度1B>+[数据]+[校验1B]
其中指令2B,支持1~255,足够后续进行命令扩展。
数据长度为数据长度字节后所有数据长度,包括校验字节;
unsigned char xor_crc(unsigned char *ptr,unsigned char len)
{
unsigned char i,xor=0;
for(i=0;i<len;i++)
{
xor = xor ^ ptr[i];
}
return(xor);
}
示例:
1.发送指令
<21><21><数据长度><校验1B>
0x21 0x21 0x01 0xXX
返回结果:
找到标签:<41><41><数据长度><标签数量1B><标签号1 12B><标签号2 12B><校验1B>
以找到两个标签为例,第一个为0xA31245337600007832591221,第二个为0x A31245337600007832591256
具体格式为:0x41 0x41 0xXX 0x02 0xA3 0x12 0x45 0x33 0x76 0x00 0x00 0x78 0x32 0x59 0x12 0x21 0xA3 0x12 0x45 0x33 0x76 0x00 0x00 0x78 0x32 0x59 0x12 0x56 0xXX
现在我是不知道怎么下手
文档如下:
通用数据协议格式:<指令1B>+<指令1B>+<数据长度1B>+[数据]+[校验1B]
其中指令2B,支持1~255,足够后续进行命令扩展。
数据长度为数据长度字节后所有数据长度,包括校验字节;
unsigned char xor_crc(unsigned char *ptr,unsigned char len)
{
unsigned char i,xor=0;
for(i=0;i<len;i++)
{
xor = xor ^ ptr[i];
}
return(xor);
}
示例:
1.发送指令
<21><21><数据长度><校验1B>
0x21 0x21 0x01 0xXX
返回结果:
找到标签:<41><41><数据长度><标签数量1B><标签号1 12B><标签号2 12B><校验1B>
以找到两个标签为例,第一个为0xA31245337600007832591221,第二个为0x A31245337600007832591256
具体格式为:0x41 0x41 0xXX 0x02 0xA3 0x12 0x45 0x33 0x76 0x00 0x00 0x78 0x32 0x59 0x12 0x21 0xA3 0x12 0x45 0x33 0x76 0x00 0x00 0x78 0x32 0x59 0x12 0x56 0xXX
现在我是不知道怎么下手
...全文
相关推荐
S7-1200中将BYTE类型数据转换成char类型数据的具体方法.docx
可以使用for循环结构,通过索引变量i逐个访问BYTE数组中的元素,并将其值赋给char数组相应的位置。例如,如果BYTE[1]的值为16#01,我们要将其转换成对应的ASCII字符。
基于C#调用c++Dll结构体数组指针的问题详解
基于C#调用C++ Dll结构体数组指针的问题详解C#调用C++ Dll文件是一件很麻烦的事情,首先面临的是数据类型转换的问题。
byte与各类型之间的转化
} ``` - **byte[]到String的转换** - 反之,可以使用`new String(byte[], Charset)`构造函数将字节数组转换为字符串。
C# string byte数组转换解析.pdf
理解并熟练掌握这些转换技巧,对于在C#开发中处理数据流和字符编码问题至关重要。无论是在互联网通信、文件读写还是数据解码场景中,这些基础知识都能帮助你更好地实现需求。
C++char无法转为LPCWSTR的解决方法收集。
解决方法三:使用函数转换可以使用函数将char类型转换为wchar_t类型,例如,使用mbstowcs()函数,可以将char数组转换为wchar_t数组:wchar_t wcBuf[20];mbstowcs


Java SE
