hexadezimal ausgeben und umrechnen

Moin,
nein, das ist schon korrekt !
"-25" ist "0xffffffe7" oder auch "-1" ist "0xffffffff" :)

Das hängt mit den darstellbaren Zahlenbereichen zusammen und ob sie vorzeichenbehaftet sind!

Beispiel:
unsigned short int : von 0 bis 65535
short int : von -32768 bis 32767

Gruß
Klaus
 
Zuletzt bearbeitet:
Hm, aber wenn man "ffffffff" in dezimal umrechnet kommt man doch eigentlich auf "4 294 967 295", oder nicht? Hat das jetzt irgend etwas mit dem "0x" davor zu tun? Ich dachte das wäre einfach nur die Schreibweise für Hexadezimal Zahlen. Was du mir mit dem Beispiel der integer Werte sagen wolltest habe ich nicht verstanden, ich weis dass short int von -32768 bis 32767 geht und unsigned short int von 0 bis 65535, aber was hat das jetzt mit dem hier zu tun?

Entschuldigt wenn ich mich so blöd anstelle, aber ich bin auch langsam etwas verwirrt.
 
Hm, aber wenn man "ffffffff" in dezimal umrechnet kommt man doch eigentlich auf "4 294 967 295", oder nicht? Hat das jetzt irgend etwas mit dem "0x" davor zu tun? Ich dachte das wäre einfach nur die Schreibweise für Hexadezimal Zahlen. Was du mir mit dem Beispiel der integer Werte sagen wolltest habe ich nicht verstanden, ich weis dass short int von -32768 bis 32767 geht und unsigned short int von 0 bis 65535, aber was hat das jetzt mit dem hier zu tun?
Es macht einfach wenig Sinn negative Werte hexadezimal darstellen zu wollen, es sei denn man möchte die Bitwerte hexadezimal ausgeben - und das ist schließlich genau das was passiert.

Ein vorzeichenbehafteter Wert wird implizit wie ein vorzeichenloser Wert behandelt - deshalb erscheint vor dem hexadez. Wert auch kein Minus.

C++:
unsigned int ui;
if (cin >> hex >> ui) {
  int nValue = static_cast<int>(ui);
  
  cout << dec << nValue;
}
Gruß
 
Moin,

ich hatte gehofft, dass es sich mit den etwas handlicheren Zahlen besser erschließt :)

unsigned short int : von 0 bis 65535
0 = 0x0000
65535 = 0xffff

signed short int : von -32768 bis 32767
mit :
+1 = 0x0001
-1 = 0xffff
32767 = 0x7fff
-32768 = 0x8000

da hier Zahlenraum der positiven Zahlen um eins kleiner ist als der der negativen Zahlen!

Vlt. helfen Dir auch die Bespiele auf diesen Seiten:
http://www.wer-weiss-was.de/theme50/article1004755.html
http://dcla.rkhb.de/umwandlung.html

Gruß
Klaus
 
Ich danke euch allen für eure Hilfe und die tollen Erklärungen.

Ich werds jetzt aber wohl einfach sein lassen, eigentlich wollte ich die Werte eines Sinus die eben zwischen +1 und -1 hin und her gehen im Hexa Code in ein Array schreiben damit ich dann über die Register Adressen die Werte auslesen kann. Ich dachte nicht dass es so kompliziert wird. Hab jetzt einfach einen Offset gesetzt und eine große Amplitude gewählt, so konnte ich die Nachkomma-Stellen einfach abschneiden. - Das nur so zur Erklärung, damit ihr nicht denkt es war umsonst.

Also vielen Dank an alle, ich bewerte euch auch gerne, allerdings weis ich nicht ob das bei einem Gastzugang geht und ich weis auch nicht wie.
 
Der Bewerten-Button ist gut beschriftet unter jedem Beitrag eher links - Allerdings kann das ein Gast glaub ich nicht.
 
Zurück