Nasobenie v C.
Moderátor: Moderátoři
Nasobenie v C.
Máme dané pole typu byte:
byte pole[3] = {100,200,300};
a premennú na uloženie výsledku:
int cislo;
a potrebujem násobiť položku v poli desiatimi.
cislo = pole[1] * 10;
Takýto zápis ale nefunguje.
výsledok by mal byť 2000 ale je iba 208. V diassembleri som zistil že sa do výstupnej premennej preniesol iba dolný byte výsledného čísla.
Zatiaľ čo tento zápis normálne funguje :
cislo = pole[1];
cislo *= 10;
Výsledok je skutočne 2000.
Ešte dodám že kompilátor je C18 v MPLABe a program je pre PIC18f.
Vie niekto prečo je tomu tak?