Seite 1 von 1

Format in C

Verfasst: Di Feb 23, 2021 1:23 pm
von joe1903
Hallo zusammen,

ich fange neu an C zu lernen und habe eine Frage:

Wenn ich z.B. einen Wert als Byte (0..255) habe und einen als unsigned long (z.B. Zeit seit 1. Januar 1970 in Sekunden oder eine Differenz von Zeiten) und ich will einen Quotienten bilden, wie muss ich diesen deklarieren damit ich nicht Null herausbekomme (was aktuell der Fall ist)
Also

??? NeuerWert = (byte) / (unsigned long)

Oder muss ich das Byte erst anpassen?

Besten Dank.

Re: Format in C

Verfasst: Di Feb 23, 2021 6:42 pm
von Xin
Ich verstehe die Frage nicht. ^^

Wenn ich versuche, hier einen Sinn reinzuinterpretieren, dann bekommst Du Null raus, weil der unsigned-long-Wert größer ist als der Byte-Wert, richtig? Es kommt also etwas <1 raus und bei Integer-Zahlen ist kleine 1 Null.

Dann musst Du mit Fließkomma-Zahlen arbeiten.

Code: Alles auswählen

unsigned char byte = 255;
unsigned long dword = 5000;

double divident = (double) byte;
double divisor = (double) dword;

double quotient = divident / divisor;
printf("Ergebnis: %f\n", quotient );
oder kürzer:

Code: Alles auswählen

printf("Ergebnis: %f\n", ((double) 255) / ((double) 5000) );[code]