24小时热门版块排行榜    

查看: 418  |  回复: 5

liujunming

新虫 (著名写手)


[交流] 【求助】数据读取

unsigned char cha[16];

fin.read((char *) &cha, sizeof(cha));
cch[0]=((-32767)^(*(signed short int *)(cha)));
cch[1]=((-32767)^(*(signed short int *)(cha+2)));
cch[2]=((-32767)^(*(signed short int *)(cha+4)));

请问这数据是咋读的啊?谢谢了
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhai-lili

金虫 (正式写手)



liujunming(金币+1):谢谢参与
liujunming(金币+56): 2011-01-21 16:03:07
unsigned char cha[16];
/*先定义一个无符号的字符数组 cha 里面应该全是正数 范围0-255*/

fin.read((char *) &cha, sizeof(cha));
/*逐行读取 (char *) 的内容:每sizeof(cha)个字节 存到 cha中*/
/*以下是 1111111111111111 的异或运算 */
cch[0]=((-32767)^(*(signed short int *)(cha)));
cch[1]=((-32767)^(*(signed short int *)(cha+2)));
cch[2]=((-32767)^(*(signed short int *)(cha+4)));

比如取到的 cha 是 a, ASCII编码 就是97
1111111111111111
0000000001100001
----------------(异或)
1111111110011110
于是 cch[0]=1111111110011110
不过看你的数据输出 明显是16进制的,不过一行输出八个16进制的数
于是还得把“cch[0]=1111111110011110” 转换成 16进制的
数是 FF9E
至于输出格式,应该是程序设定的。
楼主给的信息不全,只能解读到这个程度。自己算算吧。
希望解答对楼主有帮助!
2楼2011-01-21 14:50:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xuehuihui

金虫 (正式写手)



liujunming(金币+1):谢谢参与
NB的数据组
4楼2011-01-21 15:33:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

想飞的猪

木虫 (正式写手)


★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+2): 谢谢参与应助!欢迎常来程序语言版! 2011-02-20 15:45:38
这是十六进制的!东西吧!
看你要怎么读?一次读一个?还是一次独一行?
建议用MFC的CFile和STLstring!
6楼2011-01-23 16:49:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
简单回复
2011-01-21 14:59   回复  
liujunming(金币+1):谢谢参与
ssewr5楼
2011-01-21 16:01   回复  
liujunming(金币+1):谢谢参与
相关版块跳转 我要订阅楼主 liujunming 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见