首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

要组织一个报文,前两位是定义整个报文的长度,就是长度怎么设置及16进制下赋值有关问题,具体见里,多谢

2012-03-14 
要组织一个报文,前两位是定义整个报文的长度,就是长度如何设置及16进制下赋值问题,具体见里,谢谢!charbuf[

要组织一个报文,前两位是定义整个报文的长度,就是长度如何设置及16进制下赋值问题,具体见里,谢谢!
char   buf[2048];buf[0],buf[1]     为整个报文的长度

如果长度为85位,不知如何写,在16进制下看到是:00   55
如果长度为255位,不知如何写,在16进制下看到是:00   ff
如果长度为280位,不知如何写,在16进制下看到是:01   18

谢谢!


struct   tb
(
name   char[4],
book   char[6],
looy   char[4]
);
struct   tb   mytb;
我现在知道looy 这个位置在16进制下看到是     00   00   00   22      
我想把这个值赋给mytb 的looy   ,一般字符串用memcpy(mytb.looy   , "abcd ",4)

谢谢!




[解决办法]
char buf[2048] ;
char tmp[2] ;
short num ;
num = 85 ;
memcpy(tmp, &num, 2) ;
buf[0] = tmp[1] ;
buf[1] = tmp[0] ;
[解决办法]
union stream{
char buf[2048];
struct{
short num;
char dat[2046];};
};

stream a;
a.num = ...
针对tb;可以这样:
union dd{
tb t;
struct {
char fo[10];
long len;};
};
这样,dd d;tb mytb;
d.len = 0x22;mytb = d.t;//--- mytb.looy <== "\0\0\0\22 ";
[解决办法]
unsigned short Mess=85;
char *lpBuf=buf;
*(unsigned short*)lpBuf=Mess;

热点排行