2016-05-13 26 views
3

Ich probierte std::bitset aus und nachdem ich einige Zeit falsche Ergebnisse erhalten hatte, bemerkte ich, dass die Ergebnisse in umgekehrter Reihenfolge waren. Versuchte Suche auf cppreference Seite, konnte aber keine Quelle finden und benötigt daher eine Bestätigung. Dies sollte auch Standardverhalten in verschiedenen Compilern sein?werden Bitset-Daten in umgekehrter Reihenfolge gespeichert?

#include <iostream> 
#include <bitset> 
using namespace std; 

int main() { 
    bitset<7> bin('C'); 
    cout << bin << endl; 
    for(int i = 0; i < 7; ++i){ cout << bin[i]; } 
    return 0; 
} 

1000011

1100001

+4

versuchen Sie dies. [Stackoverflow: Warum sind die Bits eines std :: bitset in umgekehrter Reihenfolge?] (Http://stackoverflow.com/q/4975037/3764546) –

+2

Eigentlich ist dies eine bessere Antwort: http://stackoverflow.com/questions/29483123/why-does-stdbitset-expose-bits-in-wenig-endian-mode – Barry

Antwort

2

Aus dem C++ Standard:

Wenn zwischen einem Objekt der Klasse Umwandlung bitset<N> und einem Wert von etwas integralen Typ, bit Position pos entspricht der Bitwert 1 < < pos. Der Integralwert, der zwei oder mehr Bits entspricht, ist die Summe ihrer Bitwerte.

Verwandte Themen