wszystkie możliwe kombinacje
...
losowanie 8 bitów do tablicy i sprawdzanie czy tablica ta się nie powtarza do momentu, aż uzyskam 256 możliwości,
To słaby pomysł. Czekać aż się wylosuje liczba... A co jeśli będziesz chciała wypisać wszystkie liczby w 32 bitach? Będziesz czekała aż się wylosują 4 miliardy liczb? To nie jest żaden sposób (chociaż przy tylko 256 możliwościach faktycznie mógłby się udać jeszcze).
utworzenie dwóch tablic, jedna z samych zer, druga z samych jedynek i zamienianie ich kolejności w trzeciej tablicy
Nie potrzebujesz (jeśli możesz po prostu wyświetlić tę liczbę w postaci zerojedynkowej, jak już ci napisali).
Swoją drogą jakby to miało działać? Prędzej, jeśli chcesz zrobić overengineering, to mogłabyś zrobić coś w stylu "ośmioelementowa tablica, z elementami 0 albo 1" i ręczne dodawanie liczb (taki symulator procesora/dodawania na kartce - patrzymy czy dany element tablicy jest zerem, jeśli tak to ustawiamy na jeden, a jeśli jest już jeden, to ustawiamy na zero i przesuwamy kolejną cyfrę na 1...). Ale znowu, nie jest to potrzebne, jeśli już w języku masz konwerter (jak @Fuffu wspomniał, bo ja tam na C# się nie znam i nie wiem co on tam ma).
Ew. mogłabyś również dla sportu - napisać własny konwerter liczb do zerojedynkowego stringa - działając na operacjach bitowych(przelatywać po bitach i wykonywać na nich operację and
, porównując z odpowiednią maską bitową, która będzie przesuwana za każdą iteracją, żeby złapać kolejne cyfry - i potem na podstawie tego dodawać albo znak 0
albo 1
jako kolejną cyfrę w stringu). A zawsze warto mieć jakiś obraz, w jaki sposób działają liczby w komputerze.