Go Down

Topic: Modulo (Read 480 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy