bitset
-
Bei folgendem Beispiel aus dem C++ Primer:
//bitvec1 ist kleiner als der Initialisierer. bitset<16> bitvec1(0xffff); // Die Bits 0 bis 15 werden // auf 1 gesetzt.Ist bitvec1 kleiner als der Initialisierer, weil der Initialisierer vom Typ "unsigned long" ist? (Wenn ja, wie kann eine literal konstante vom Typ unsigned long sein, die ist halt einfach ein "Zahlentyp", aber was für einer dass hab ich doch gar nicht gesagt? So würde ich es ja noch verstehen:
const unsigned long temp = 0xffff; bitset<16> bitvec1(0xffff);Oder ist bitvec1 kleiner als der Initialisierer, weil "0xffff" (65535) größer ist als dass was in 16Bit (2Byte = 65335) reinpasst?
Da hab ich irgendwie noch n Verständnisproblem. Bitte extrem verständliche Erklärungen schreiben
.MfG
Stromberg
-
Per Standard ist das folgende definiert:
// Kein Postfix 454; // Von irgendeinem signed integer (int, long int) 0xFF; // Von irgendeinem integer (int, long int, unsigned int, unsigned long int) 054; // Von irgendeinem integer (int, long int, unsigned int, unsigned long int) // u oder U als Postfix 454u; // Von irgendeinem unsigned integer (unsigned int, unsigned long int) 0xFFu; // " 054u; // " // l oder L als Postfix 454l; // signed long int 0xFFl; // signed long int, unsigned long int 054; // signed long int, unsigned long int // u oder U und l oder L als Postfix 454ul; // unsigned long int 0xFFul; // " 054ul; // "Da ein
bitsetKonstruktor einenunsigned longerwartet, wird der Kompiler für0xffffwahrscheinlich den Typunsigned long intwählen.Grüssli
PS: Ich hoffe ich habe die Liste richtig aus meinem Kopf rauskopiert

-
Dravere schrieb:
PS: Ich hoffe ich habe die Liste richtig aus meinem Kopf rauskopiert

Mach mal nen firmware-update wenn die aktuelle nicht mal copy&paste 100%ig unterstützt

aber sieht so aus, als ob es richtig wäre ^^bb
-
Und was ist mit short? Das ist doch auch ein Integer Typ!? Gibts da nichts?
MfG
Stromberg
-
Seit wann passen in 2 Byte nur 65336 verschiedene Werte anstatt 65536?
-
Ka, äh ich hab dass halt so gelernt dass der Wertebereich von "unsigned short" von 0 - 65335 geht. Stimmt dass jetzt oder nicht?
MfG
Stromberg
-
Stromberg schrieb:
Ka, äh ich hab dass halt so gelernt dass der Wertebereich von "unsigned short" von 0 - 65335 geht. Stimmt dass jetzt oder nicht?
MfG
Stromberg2 Byte = 16 bit = 65536 Möglichkeiten
EDIT:
Ganzen Link kopieren, nicht anklicken.
-
Was ist dann hier gemeint?
http://209.85.129.132/search?q=cache:dxZyZlBJkqgJ:seite.hilber.loferer.at/index2.php%3Foption%3Dcom_docman%26task%3Ddoc_view%26gid%3D39%26Itemid%3D72+C%2B%2B+short+65335&hl=de&ct=clnk&cd=4&gl=de&lr=lang_de&client=operaMfG
Stromberg
-
Stromberg schrieb:
Was ist dann hier gemeint?
http://209.85.129.132/search?q=cache:dxZyZlBJkqgJ:seite.hilber.loferer.at/index2.php%3Foption%3Dcom_docman%26task%3Ddoc_view%26gid%3D39%26Itemid%3D72+C%2B%2B+short+65335&hl=de&ct=clnk&cd=4&gl=de&lr=lang_de&client=operaMfG
StrombergWahrscheinlich Tippfehler.
-
Damit ist ein Typo gemeint!
Oder aber Windows reserviert die oberen 200 Werte für interne nutzung und zukünftige features
-
Stromberg schrieb:
Ka, äh ich hab dass halt so gelernt dass der Wertebereich von "unsigned short" von 0 - 65335 geht. Stimmt dass jetzt oder nicht?
Falls du 65536 meinst: Das ist vielleicht häufig so, muss aber nicht so sein. Es ist auch nicht vorgeschrieben, dass
short2 Bytes gross ist.