Hallo Ich habe eine signed Int variable... In dieser befindet sich nun ein negativer Wert... Das kann ich durch eine IF abfrage prüfen... Nun möchte ich diesen wert in eine Variable vom Typ int (also ohne vorzeichen) schreiben... Dazu habe ich abs(variable) sowie labs(Variable) versucht... Beide funktionieren jedoch nicht!
1 | int Diode = 185; |
2 | int Sensor = 100; |
3 | signed int Resultat2 = 0; |
4 | int Resultat = 0; |
5 | unsigned char ucVorzeichen = 0; //0 = plus 1 = minus |
6 | Resultat2 = Sensor - Diode; |
7 | if(Resultat2 < 0) |
8 | {
|
9 | ucVorzeichen = 1; |
10 | Resultat = labs(Resultat2); |
11 | status(1); |
12 | }
|
13 | Resultat = ((Resultat * 488) / 100); |
Merkwürdigerweise kommt nach der Umwandlung mit itoa eine Negative zahl heraus obwohl int ja nicht negativ sein kann!
1 | uart_puts("Resultat: "); |
2 | uart_puts( itoa(Resultat , String, 10) ); |
Woran kann das liegen?