在允许我们通过UDP/IP控制它的硬件文档中,我发现了以下片段:
在这种通信协议中,DWORD是4字节数据,WORD是2字节数据,BYTE是单字节数据.存储格式为小端,即4字节(32位)数据存储为:d7-d0,d15-d8,d23-d16,d31-d24; 双字节(16位)数据存储为:d7-d0,d15-d8.
我想知道这是如何转换为C#的?在发送之前我是否必须转换内容?例如,如果我想发送32位整数或4个字符的字符串?
我读了一个二进制文件,得到一个带字符的数组.当我将两个字节转换为整数时256*ord(p1) + ord(p0).它适用于正整数但是当我得到负数时它不起作用.我知道在最重要的字节中有第一位但是没有成功.
我也明白有一些东西叫做struct,在阅读后我最终得到了以下代码
import struct
p1 = chr(231)
p0 = chr(174)
a = struct.unpack('h',p0+p1)
print str(a)
Run Code Online (Sandbox Code Playgroud)
a变成-6226,如果我换掉p0,p1我得到-20761.
a 应该是-2