我试图取一个介于100,000到10,000之间的数字,并将每个单独的数字推入队列。
我使用模数函数来做到这一点。但是,我遇到了Uno的16位整数问题,上限为32,767。我已经尝试使用长整数,无符号整数和无符号长整数,但程序仍然只在32,767之后将0推到队列中。我应该尝试使用char / string方法,还是我错过了一个解决方案?
void fill_que(unsigned int b) {
int price = b;
while(price > 0) {
queue.push(price%10);
Serial.print(price%10);
price/=10;
}
}
int main() {
unsigned int price1 = 36111;
fill_que(price1);
}
答案 0 :(得分:2)
我会猜测并说,您忘记更改变量price
的类型。
应该是:
void fill_que(unsigned long b)
{
unsigned long price = b;
while(price > 0)
{
queue.push(price%10);
Serial.print(price%10);
price/=10;
}
}
int main()
{
unsigned long price1 = 36111;
fill_que(price1);
}