单片机编程(C语言)问题

2024-12-02 21:13:39
推荐回答(3个)
回答1:

你可以尝试将num从0累加到255再看看什么情况,

#include 
#include 
void main()
{
unsigned char num=0;
int index=0;

for(index=0;index<300;index++)
{
printf("%3d ",num);
if(num % 15==0)
{
putchar('\n');
}
num++;
}
}

回答2:

你的程序中,num变量是在全局声明区定义的,声明类型为unsigned char,也就是无符号字符型变量,问题出现在那个unsigned上了,当你使用(num=9;num>=0;num--)作为循环条件时,num被减到0时,条件依然符合,这就会导致num还要被再减一次,而unsigned char型变量的范围是0-255,它不能够表示负数,问题就在这里了。

你把uchar num;改成char num;试试。

回答3:

uchar num; 到0后-1溢出了,成FF了,无符号数为255