Anfänger: Modulo problem

Gast #4373785
Lesenswert?
• ▲
▼
Haben in der Schule denn Modulo operator besprochen. Ich möchte nun 
binär Zahlen in Dezimalzahlen umrechnen. Das Programm funktioniert 
soweit allerdings gibt es mir bei 0100, 0110, 0010 falsche Werte aus und 
ich weis nicht warum :)
Danke schon mal für eure Hilfe

hier noch der code
1
#include <stdio.h>
2

3

4
int dual, t, t2, t3, t4, w, w2, w3, end;
5
int main(){
6

7
printf("geben Sie eine Dualzahl ein: "); scanf("%i", &dual);
8
printf("%i\n", dual);
9

10
      t = dual/1000;
11
    w = dual%1000;
12
    t2 = w/100;
13
     w2 = w%100;
14
  t3 = w2/10;
15
     w3 = w2%10;
16
  t4 = w3/1;
17

18

19
    end = t*8+t2*4+t3*2+t4*1;
20

21
    printf("Ihr Ergebnis ist %i", end);
22

23

24
}
Gast #4374812
Lesenswert?
• ▲
▼
Da i als int definiert ist, ist %d der richtige Formatspecifier für 
Dezimalzahlen. (das d steht für dezimal)

Für diese Anwendung wäre dei Definition von i als unsigned  int aber 
sinnvoller. Dann passt auch %u für unsigned.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren