|
void KeyAction(unsigned char keycode)
{
static unsigned long result = 0; //用于保存運(yùn)算結(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)入個(gè)位
ShowNumber(addend); //運(yùn)算結(jié)果顯示到數(shù)碼管
}
else if (keycode == 0x26) //向上鍵用作加號(hào),執(zhí)行加法或連加運(yùn)算
{
result += addend; //進(jìn)行加法運(yùn)算
addend = 0;
ShowNumber(result); //運(yùn)算結(jié)果顯示到數(shù)碼管
}
else if (keycode == 0x0D) //回車(chē)鍵,執(zhí)行加法運(yùn)算(實(shí)際效果與加號(hào)相同)
{
result += addend; //進(jìn)行加法運(yùn)算
addend = 0;
ShowNumber(result); //運(yùn)算結(jié)果顯示到數(shù)碼管
}
else if (keycode == 0x1B) //Esc鍵,清零結(jié)果
{
addend = 0;
result = 0;
ShowNumber(addend); //清零后的加數(shù)顯示到數(shù)碼管
}
}
問(wèn):(keycode-0x30)計(jì)算出是一個(gè)十六進(jìn)制的數(shù), ShowNumber(addend)的addend是一個(gè)十進(jìn)制的數(shù)
|
|