Um bit flutua do LSB para o MSB, movendo-se uma posição de cada vez até flutuar para o topo do contêiner:
0000
0001
0010
0100
1000
Quando um bit flutua para o topo, outro bit inicia sua jornada e para quando encontra outro bit:
1001
1010
1100
Isso acontece até que o contêiner seja preenchido com bits:
1101
1110
1111
Desafio
Dado um número inteiro, imprima a " Sequência flutuante de bits " para um contêiner desse número de bits.
- Cada termo da sequência pode ser separado por qualquer separador de sua escolha.
- Editar : Sequência deve ser mostrados como números decimais inteiros, começando pelo primeiro terma:
0
. - O tamanho do contêiner deve ser maior que zero e até o número de bits do maior número inteiro suportado pelo idioma de sua escolha. Você pode assumir que a entrada sempre corresponde a esse requisito.
Exemplos
Somente a sequência numérica é necessária, a representação binária é mostrada como exemplo:
Para 1 :
0 1
0 -> 0 1 -> 1
Para 3 :
0 1 2 4 5 6 7
000 -> 0 001 -> 1 010 -> 2 100 -> 4 101 -> 5 110 -> 6 111 -> 7
Para 4 :
0 1 2 4 8 9 10 12 13 14 15
0000 -> 0 0001 -> 1 0010 -> 2 0100 -> 4 1000 -> 8 1001 -> 9 1010 -> 10 1100 -> 12 1101 -> 13 1110 -> 14 1111 -> 15
Para 8 :
0 1 2 4 8 16 32 64 128 129 130 132 136 144 160 192 193 194 196 200 208 224 225 226 228 232 240 241 242 244 248 249 250 252 253 254 255
00000000 -> 0 00000001 -> 1 00000010 -> 2 00000100 -> 4 00001000 -> 8 … … … 11111000 -> 248 11111001 -> 249 11111010 -> 250 11111100 -> 252 11111101 -> 253 11111110 -> 254 11111111 -> 255
[0.0, 1.0]
0 -> [0, 1]