ok, that's just a different manipulation vs shifting a 1 back & forth.
for 00000001, 00000011, 00000111, 00001111,
I think you can start with 1 and shift<1 and add 1:
for (byte led = 1; led=255; led = led<1 +1){
for 11111111, 11111110, 11111100, 11111000
start with 11111111 and shift left 1
for (byte led = 255; led = 0; led+led<1){
for 10000000, 11000000, 11100000, 11110000
start with 10000000, shift right and add 100000000
for (byte led = B10000000; led = 255; led = led>1 + B10000000){