@qwerty212: jeśli interesuje Cię to w celach praktycznych, to jest zdecydowanie łatwiejsze podejście:
auto set = stl::bitset<16>(static_cast<unsigned long>(number));
I masz gotowe. Jeśli jednak chcesz się nauczyć czegoś ciekawego to polecam samemu spróbować dojść jak to działa.
Tutaj masz sesję LLDB (w GDB powinno to działać podobnie) uruchamianą z terminala z ww. programem (poprawionym trochę), który wypisuje reprezentację bitową dla argumentu (run <arg>
w debuggerze) gdzie widać jak po kolei są zmieniane rzeczy. Jeśli używasz jakiegoś IDE to masz pewnie zdecydowanie ładniejszy interfejs dostępny, więc możesz tam spróbować.
Polecenia, debuggera, które Cię interesują:
-
breakpoint
(skrót b
) do ustawienia punktu przerwania, tutaj widzisz jak przerywam na wejściu do funkcji
-
print
(skrót p
) do wyświetlenia wartości zmiennej (pozwala również na proste obliczenia, co widać jak używam p 1 << i
w pętli)
-
step
(skrót s
lub enter po tym jak już raz tego użyłeś) przejście do następnej linijki kodu
Za każdym razem masz też widok podglądowy "gdzie się znajdujesz" w programie.