我正在寻找一种将 2 个数字相乘(均为 2 个数字)的方法,我正在用 C 语言编程并使用 PIC18F4455 芯片以及 CCS 编译器。继承人的问题:
代码:
#include<18F4455.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#device ICD=TRUE
#use delay(clock=5000000)
#include<lcd.c> //LCD display source code
#include<kbd_xy.c> //keypad source code
void main(){
char k;
//
//code to retrive keypad input and store in a and b values
//
unsigned long c;
unsigned int a=99;
unsigned int b=1;
while(b<99)
{
c=a*b;
printf(lcd_putc,"%Ld",c);
delay_ms(1000);
lcd_putc('\f');
}
}
问题是由于芯片是8bit,c中存储的数字不能超过256。所以 99*1 给出 099,99*2 给出 198,但 99*3 给出 41,注意 99*3=297 即 256+41 等等...
我正在寻找一种更好的方法来获得真正的结果,它们将通过 LCD 显示,所以如果我最终得到 4 个变量,每个变量都包含一个我可以接受的数字。如果当我做 99*3 时,我得到像 c1=7 c2=9 c3=2 和 c4=0 这样的变量,那就太棒了