Hi,
nachdem ich mich nun seit 7 Stunden durch mysteriöse Bugs innerhalb meines Programms kämpfe bin ich nun auf den merkwürdigsten von allen gestoßen, der evtl. gleichzeitig der Auslöser meiner Probleme ist.
Vorab: Cross compiler ist der GCC 4.7.3, Zielsystem ist ein Raspberry PI mit ARMv6 CPU.
Ich muss für eine Gesichtsverarbeitungssoftware char werte zu double konvertieren, um damit rechnen zu können. Leider scheint mein ARM Prozessor das aber nicht richtig zu können, wie im folgenden Dargestellt:
Output auf meinem ARM gerät:
Egal welche Zahl, der char wird immer zu 16 konvertiert.
Um nicht völlig vom Glauben abzufallen habe ich den gleichen Test auf meinem Windows Gerät mit Visual Studio 2013 aufgeführt, mit folgendem Ergebnis:
Es funktioniert normal.
Ich komme nicht drumherum, die char werte zu double zu konvertieren. Könnte mich jemand erleuchten, was zur Hölle hier los ist? Hat es evtl. etwas mit dem Fließkommamodell zu tun? Falls ja, wie kriege ich meine char zu double Werten konvertiert?
nachdem ich mich nun seit 7 Stunden durch mysteriöse Bugs innerhalb meines Programms kämpfe bin ich nun auf den merkwürdigsten von allen gestoßen, der evtl. gleichzeitig der Auslöser meiner Probleme ist.
Vorab: Cross compiler ist der GCC 4.7.3, Zielsystem ist ein Raspberry PI mit ARMv6 CPU.
Ich muss für eine Gesichtsverarbeitungssoftware char werte zu double konvertieren, um damit rechnen zu können. Leider scheint mein ARM Prozessor das aber nicht richtig zu können, wie im folgenden Dargestellt:
Code:
int main(void) {
for (int i = 0; i < 10; ++i) {
char c = i;
cout << (int) c << "--> " << (double) c << endl;
}
return 0;
}
Output auf meinem ARM gerät:
Code:
0--> 16
1--> 16
2--> 16
3--> 16
4--> 16
5--> 16
6--> 16
7--> 16
8--> 16
9--> 16
Egal welche Zahl, der char wird immer zu 16 konvertiert.
Um nicht völlig vom Glauben abzufallen habe ich den gleichen Test auf meinem Windows Gerät mit Visual Studio 2013 aufgeführt, mit folgendem Ergebnis:
Code:
0--> 0
1--> 1
2--> 2
3--> 3
4--> 4
5--> 5
6--> 6
7--> 7
8--> 8
9--> 9
Es funktioniert normal.
Ich komme nicht drumherum, die char werte zu double zu konvertieren. Könnte mich jemand erleuchten, was zur Hölle hier los ist? Hat es evtl. etwas mit dem Fließkommamodell zu tun? Falls ja, wie kriege ich meine char zu double Werten konvertiert?