初级会员

- 积分
- 103
- 金钱
- 103
- 注册时间
- 2017-7-26
- 在线时间
- 29 小时
|
5金钱
if(Delay_f == 1){Second1--;if(Second1 == 65535)Second1 = 99;}
else if(Volumn_f == 1){mL_1000--;if(mL_1000== 65535)mL_1000 = 99;}
else if(Coarse_f == 1){Speed1_1--;if(Speed1_1 == 65535)Speed1_1 = 89;}
else if(Minitrim_f == 1){Speed1_2--;if(Speed1_2 == 65535)Speed1_2 = 99;}
上面这些代码中的Second1,mL_1000,Speed1_1,Speed1_2都是定义的int(0-65535)数据类型,我需要的计数是可以从0-99计数的(包括0),之前写成if(Speed1_2 <0)Speed1_2 = 99,后来才知道KEIL的int数据类型只有0-65535,所以改成if(Speed1_2 == 65535)Speed1_2 = 99;但是改成这样之后,每次数据减下去,5,4,3,2,1,0,95,94,93,92.......;这样的话我这条语句Speed1_2 = 99;是不是没有起作用了,还是其他问题?
|
最佳答案
查看完整内容[请看2#楼]
1、int 型,也就是signed int型,在32bit芯片里是-2^31-(2^31-1);
2、你说的应该是signed short型,范围是-32768 - 32767;
3、提问的时候建议把问题描述清楚,排版尽量整齐一点;
4、我来猜着回答你的问题,你用这个代码就可以循环输出99..0,不知道能不能满足楼主的要求;
[mw_shl_code=c,true]int i=99;
while(1)
{
printf("%d",i);
i--
if(i < 0)
i = 99;
}[/mw_shl_code])
|