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.
Format in C
- Xin
- nur zu Besuch hier
- Beiträge: 8858
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Format in C
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.
oder kürzer:
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 );
Code: Alles auswählen
printf("Ergebnis: %f\n", ((double) 255) / ((double) 5000) );[code]
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.