Bit floating sequence A bit floats from the LSB to the MSB moving one position each time until it floats to the top of the container:

0000
0001
0010
0100
1000


Once one bit floats to the top, another bit begins its journey and it stops when it meets other bit:

1001
1010
1100


This happens until the container is filled with bits:

1101
1110
1111


Challenge

Given an integer number, output the "Bit floating sequence" for a container of that number of bits.


Each term of the sequence can be separated by any separator of your choice.
Edit: Sequence must be shown as decimal integer numbers, starting by the first therm: 0.
The container size sould be greater than zero and up to the number of bits of the bigest integer suported by the language of your choice. You can assume that the input always match this requirement.


Examples

Only the numeric sequence is required, binary representation is shown as example:


For 1: 0 1

0 -&gt; 0
1 -&gt; 1

For 3: 0 1 2 4 5 6 7

000 -&gt; 0
001 -&gt; 1
010 -&gt; 2
100 -&gt; 4
101 -&gt; 5
110 -&gt; 6
111 -&gt; 7

For 4: 0 1 2 4 8 9 10 12 13 14 15

0000 -&gt; 0
0001 -&gt; 1
0010 -&gt; 2
0100 -&gt; 4
1000 -&gt; 8
1001 -&gt; 9
1010 -&gt; 10
1100 -&gt; 12
1101 -&gt; 13
1110 -&gt; 14
1111 -&gt; 15

For 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 -&gt; 0
00000001 -&gt; 1
00000010 -&gt; 2
00000100 -&gt; 4
00001000 -&gt; 8
…
…
…
11111000 -&gt; 248
11111001 -&gt; 249
11111010 -&gt; 250
11111100 -&gt; 252
11111101 -&gt; 253
11111110 -&gt; 254
11111111 -&gt; 255
05AB1E, 10 bytes

LRL˜Íoî.¥ï


Try it online!

L                 # range [1..input]
 R                # reversed
  L               # convert each to a range: [[1..input], [1..input-1], ..., [1]]
   ˜              # flatten
    Í             # subtract 2 from each
     o            # 2**each
      î           # round up (returns a float)
       ï          # convert to integer
        .¥        # undelta