关于C51中 比较数的大小问题

2020-02-04 09:12发布

       我在写一个程序时,如 “ if(Boxes>60000)                 //设定最大累计装箱数
                        {LCD12864_PutString(3,4,"请重新输入");
                             LCD12864_Write_Cmd(0x98);                       
                             OK=0;                                          }
       发现Boxes 最多到65535可以进行判断,但当Boxes>=65536以上时,判断语句就没用了。
把Boxes定义为unsigned long 后,问题依然未解决。
     我想65535这是一个比较特殊的关口,是不是因为51只支持到65535以下的数的大小的判断?
那要是让51能进行65535以上的数的判断该怎么编程呢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
bangbangji
1楼-- · 2020-02-04 13:33
65535 == 0xFFFF
两个字节。。C51里面应该是把int定义为两字节了。

比较long的话把后面的常量也转为long再比较试试。
op_zcj
2楼-- · 2020-02-04 18:20
 精彩回答 2  元偷偷看……
op_zcj
3楼-- · 2020-02-04 20:42
这样? unsigned long BOX=60000;
貌似还是不行
op_zcj
4楼-- · 2020-02-04 23:29
求高人解答啊,不胜感激!
eduhf_123
5楼-- · 2020-02-05 02:46
unsigned long Boxes;
.
.
.
if(Boxes > 60000L)
BXAK
6楼-- · 2020-02-05 06:26
怎么不可以,还是检查其它有没有问题吧

wave0.jpg (167.88 KB, 下载次数: 0)

下载附件

2012-4-15 19:27 上传

一周热门 更多>