怪异的错误,肯定是有错的,但怎样都查不到错在哪里........

2020-02-08 12:12发布

下面这段程序,o_digit_read每次从decode_table[]取得9,但是......
    o_digit_read = decode_table [o_bit_pattern[3]];
    o_num_read[0] = o_digit_read & 0xf;
    o_digit_read = decode_table [o_bit_pattern[2]];
    o_num_read[0] += (o_digit_read & 0xf) << 4;
    o_digit_read = decode_table [o_bit_pattern[1]];
    o_num_read[0] += (o_digit_read & 0xf) << 8;        /*在这前,o_digit_read=9,在之后,0_num_read[0]的位8-12并不是9*/
    o_digit_read = decode_table [o_bit_pattern[0]];
    o_num_read[0] += (o_digit_read & 0xf) << 12;
本来4位数是9999,但拼接之后,得到9099..........谁能告诉错在哪里么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
flor
1楼-- · 2020-02-08 14:10
 精彩回答 2  元偷偷看……
gwdong
2楼-- · 2020-02-08 15:54
跟多少进制没关系.
不会有进位发生.
gwdong
3楼-- · 2020-02-08 20:51
好吧, 我来坦白-------在 Build Options 的 Compiler 那一页,选中那个"Debug",就没有错------至于为什么,我不知道.

(原文件名:s02.JPG)
huohuansong
4楼-- · 2020-02-09 01:02
数据都是什么类型的?
gwdong
5楼-- · 2020-02-09 01:47
补充一下,编译器是 HI-TECH.

对了还要说明一下,这段代码其实曾经用的好好的.
后来别的地方改了,它这里不行了......再后来,到处找解决办法,就试着选中那个"Debug"------好了.

一周热门 更多>