Go Down

Topic: Modulo (Read 389 times) previous topic - next topic

komika

Hallo,

ich möchte eine 4-stellige Zahl in die einzelnen Ziffern umwandeln.
Mein Code:
Code: [Select]
ziffer1=zahlerstand/1000;
  ziffer1modulo=zahlerstand%1000;
 
  ziffer2=ziffer1modulo/100;
  ziffer2modulo=ziffer2&100;
 
  ziffer3=ziffer2modulo/10;
 
  ziffer4=ziffer3%10;


Bei der Zahl 1234

wird die ziffer1 gleich 1,
ziffer1modulo gleich 234,

aber dann kommt für ziffer2-4 eine 0 raus

olikraus

Hallo

Zum einen sind die Datentypen der Variablen nicht angegeben. Das könnte eine mögliche Fehlerursache sein.
Zum anderen soll es vermutlich nicht
Code: [Select]
ziffer2modulo=ziffer2&100;
sondern
Code: [Select]
ziffer2modulo=ziffer2%100;
heissen.

So am Rande: Man beginnt meist mit den Einern:
Code: [Select]

  zahl = 1234;

  ziffer = zahl % 10; /* Einer */
  zahl /= 10;

  ziffer = zahl % 10; /* Zehner */
  zahl /= 10;

  ziffer = zahl % 10; /* Hunderter */
  zahl /= 10;

  /* ... */


Das hat den Vorteil, dass man weniger Variablen benötigt und der Code sich einfacher fortsetzen oder in einer Schleife umsetzen läßt.

Oliver

mx55

#2
Nov 10, 2012, 10:51 am Last Edit: Nov 10, 2012, 10:55 am by mx55 Reason: 1
Hallo,

hat sich erledigt, da war jemand schneller als ich.

Gruß
Christoph

uwefed

Code: [Select]
ziffer2modulo=ziffer2&100;
Bitoperationen werden auf Binärzahlen angewandt nicht auf Dezimalzahlen.

Angenommen Zahl ist die Variable mit der 4-stelligen Zahl und Stellen[] sind dann die einzelnen Ziffern der verschiedenen Stellen:

Code: [Select]
for(int i=0; i<4;i++)
{
Stellen[i]=Zahl%10;   
Zahl = Zahl/10;
}


http://arduino.cc/en/Reference/Modulo
Grüße Uwe

komika

??????
Wie kommt das "&" da rein?!

Danke!

uwefed


??????
Wie kommt das "&" da rein?!

Danke!

Ich weiß nicht wie es da reinkommt. Du hast es reingeschrieben.  ;) ;) ;)

http://arduino.cc/en/Reference/BitwiseAnd
http://arduino.cc/en/Reference/Pointer

Grüße Uwe

Go Up