|
void KeyAction(unsigned char keycode)
{
static unsigned long result = 0; //用于保存運算結(jié)果
static unsigned long addend = 0; //用于保存輸入的加數(shù)
if ((keycode>=0x30) && (keycode<=0x39)) //輸入0-9的數(shù)字
{
addend = (addend*10)+(keycode-0x30); //整體十進(jìn)制左移,新數(shù)字進(jìn)入個位
ShowNumber(addend); //運算結(jié)果顯示到數(shù)碼管
}
else if (keycode == 0x26) //向上鍵用作加號,執(zhí)行加法或連加運算
{
result += addend; //進(jìn)行加法運算
addend = 0;
ShowNumber(result); //運算結(jié)果顯示到數(shù)碼管
}
else if (keycode == 0x0D) //回車鍵,執(zhí)行加法運算(實際效果與加號相同)
{
result += addend; //進(jìn)行加法運算
addend = 0;
ShowNumber(result); //運算結(jié)果顯示到數(shù)碼管
}
else if (keycode == 0x1B) //Esc鍵,清零結(jié)果
{
addend = 0;
result = 0;
ShowNumber(addend); //清零后的加數(shù)顯示到數(shù)碼管
}
}
問:(keycode-0x30)計算出是一個十六進(jìn)制的數(shù), ShowNumber(addend)的addend是一個十進(jìn)制的數(shù)
|
|