Format in C

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
joe1903
Beiträge: 1
Registriert: Di Feb 23, 2021 1:21 pm

Format in C

Beitrag von joe1903 » Di Feb 23, 2021 1:23 pm

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.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8680
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Format in C

Beitrag von Xin » Di Feb 23, 2021 6:42 pm

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]
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.

Antworten