数值比较问题

[复制链接]
1300|3
 楼主| xsgy123 发表于 2013-7-30 18:59 | 显示全部楼层 |阅读模式
TCP, tc, RS
用TCP接受数据:
char szBuf[1024] = {0};
int nRecv = recv(wp, (char *)szBuf, 1024 , 0);
char t=szBuf[1];
bool b=(t==0xa5);

接受到的是三个char类型数据,此时szBuf中存放三个数据{0x5a,0xa5,0x01}
但是用szBuf[0]和0x5a比较,结果是相等;但是用szBuf[1]和0xa5比较,结果竟然不相等!!

这是为什么?
无冕之王 发表于 2013-7-30 19:16 | 显示全部楼层
unsigned char t = szBuf(1)
这样才行
dfsa 发表于 2013-7-30 19:28 | 显示全部楼层
0xa5已超出一个char的表示范围,也就是char数组的第二个元素保存不了0xa5这么大的数据,会被截断,这样自然就和0xa5不想等了
火箭球迷 发表于 2013-7-30 19:41 | 显示全部楼层
执行char t=szBuf[1]语句之后,t的值是多少?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

229

主题

2603

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部