C 如何在avr中以十进制格式存储数字
我正在尝试使用ATMega8中的键盘输入十进制值 到目前为止,我只能输入整数值 代码如下所示C 如何在avr中以十进制格式存储数字,c,calculator,avr,atmega,C,Calculator,Avr,Atmega,我正在尝试使用ATMega8中的键盘输入十进制值 到目前为止,我只能输入整数值 代码如下所示 switch (keyCode) { case (0xee): keyPressed="1"; b=1; a=a*10+b; break; case (0xed): keyPressed="4"; b=4;
switch (keyCode)
{
case (0xee):
keyPressed="1";
b=1;
a=a*10+b;
break;
case (0xed):
keyPressed="4";
b=4;
a=a*10+b;
break;
case (0xeb): k
keyPressed="7";
b=7;
a=a*10+b;
break;
case (0xde):
keyPressed="2";
b=2;
a=a*10+b;
break;
case (0xdd):
keyPressed="5";
b=5;
a=a*10+b;
break;
case (0xdb):
keyPressed="8";
b=8;
a=a*10+b;
break;
case (0xd7):
keyPressed="0";
b=0;
a=a*10+b;
break;
case (0xbe):
keyPressed="3";
b=3;
a=a*10+b;
break;
case (0xbd):
keyPressed="6";
b=6;
a=a*10+b;
break;
case (0xbb):
keyPressed="9";
b=9;
a=a*10+b;
}
使用上面的代码,我能够在寄存器a中存储一个整数
case (0xe7): keyPressed=".";
上面的例子是“现在我想在按下后”的键码。在键盘上,它存储整数a中按下的所有键。它是高中数学的基础,你需要用10的幂来表示数字
Example -
138.25 = (1 * 10^2) + (3 * 10^1) + (8 * 10^0) + // integer part
(2 * 10^-1) + (5 * 10^-2) // Float part
我不会给你完整的代码,但你可以使用这个想法
if (decimal)
{
a = a + b / (10 ^ pow);
}
else
{
a = a * 10 + b
}
pow
是十进制数字-在上面的示例(138.25)中,pow 2是1,5的pow
是2。
所以您需要维护
pow
的计数器,什么是b
和a
,您想要什么还不清楚。请举例说明什么数据类型是a
?它是整数类型还是浮点类型?