Хранятся ли данные в обратном порядке?
Я пытался std::bitset
и после получения неправильных результатов некоторое время я заметил, что результаты были в обратном порядке. Попытка поиска на странице cppreference, но не смог найти источник по этому вопросу и, следовательно, требуется подтверждение. Это должно быть поведение по умолчанию для разных компиляторов тоже?
#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
1 ответ
Решение
Из стандарта C++:
При конвертации между объектом класса
bitset<N>
и значение некоторого целочисленного типа, позиция бита pos соответствует значению бита 1 << pos. Интегральное значение, соответствующее двум или более битам, является суммой их битовых значений.