打印

数值比较问题

[复制链接]
1081|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

粉丝