作业帮 > 综合 > 作业

51单片机 lcd12864显示 用sprintf显示数字,只能显示小于32767的数,大于这

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/20 08:22:07
51单片机 lcd12864显示 用sprintf显示数字,只能显示小于32767的数,大于这
51单片机 lcd12864显示 用sprintf显示数字,只能显示小于32767的数,大于这个数的数还是显示32767,而且前面有负号
因为你给sprintf函数传递的参数是int型啊.int型的有效范围是-32768~+32767.
再问: 我把它改成了unsigned int void show_number(uchar add, unsigned int n) { unsigned char s[6]; sprintf(s,"%05d",n); / show_string(add,s); }
再答: 我说的你听不懂么?自己想想把一个unsigned int型当做signed int型传递是个什么结果。 自己去查查sprintf()函数的原型。 另外,你知道这两种类型在存储器中的格式吗? 考考你,例如0x8765,作为unsigned int型代表多少,作为signed int型代表多少?