Set right-adjacent bits: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (→{{header|Raku}}: Throw in another test to more fully mimic the task examples) |
Thundergnat (talk | contribs) m (→{{header|Raku}}: demonstrate left-adjacent-bits while we're at it) |
||
Line 233: | Line 233: | ||
next unless $n +& (1 +< $i); |
next unless $n +& (1 +< $i); |
||
$n +|= exp($i - $_, 2) for 1 .. $b |
$n +|= exp($i - $_, 2) for 1 .. $b |
||
} |
|||
$n |
|||
} |
|||
sub lab (Int $n is copy, Int $b = 1) { |
|||
for $n.msb … 0 -> $i { |
|||
next unless $n +& (1 +< $i); |
|||
$n +|= exp($i + $_, 2) for 1 .. $b |
|||
} |
} |
||
$n |
$n |
||
Line 244: | Line 252: | ||
.say for ^$bits .map: -> $b { $integer.&rab($b).base: 2 }; |
.say for ^$bits .map: -> $b { $integer.&rab($b).base: 2 }; |
||
say "\nInteger: $integer - Left-adjacent-bits: up to $bits"; |
|||
.say for ^$bits .map: -> $b { $integer.&lab($b).fmt("%{0~$bits+$integer.msb}b") }; |
|||
}</lang> |
}</lang> |
||
Line 252: | Line 264: | ||
1110 |
1110 |
||
1111 |
1111 |
||
Integer: 8 - Left-adjacent-bits: up to 4 |
|||
0001000 |
|||
0011000 |
|||
0111000 |
|||
1111000 |
|||
Integer: 18455760086304825618 - Right-adjacent-bits: up to 5 |
Integer: 18455760086304825618 - Right-adjacent-bits: up to 5 |
||
Line 259: | Line 277: | ||
11110000000111100000011110000011110000111100011110011110111111111 |
11110000000111100000011110000011110000111100011110011110111111111 |
||
11111000000111110000011111000011111000111110011111011111111111111 |
11111000000111110000011111000011111000111110011111011111111111111 |
||
Integer: 18455760086304825618 - Left-adjacent-bits: up to 5 |
|||
000010000000000100000000010000000010000000100000010000010000100010010 |
|||
000110000000001100000000110000000110000001100000110000110001100110110 |
|||
001110000000011100000001110000001110000011100001110001110011101111110 |
|||
011110000000111100000011110000011110000111100011110011110111111111110 |
|||
111110000001111100000111110000111110001111100111110111111111111111110 |
|||
Integer: 5444684034376312377319904082902529876242 - Right-adjacent-bits: up to 15 |
Integer: 5444684034376312377319904082902529876242 - Right-adjacent-bits: up to 15 |
||
Line 275: | Line 300: | ||
1111111111111001111111111111011111111111110111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1111111111111001111111111111011111111111110111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 |
||
1111111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1111111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 |
||
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 |
||
Integer: 5444684034376312377319904082902529876242 - Left-adjacent-bits: up to 15 |
|||
000000000000001000000000000001000000000000010000000000000100000000000010000000000010000000000100000000010000000010000000100000010000010000100010010 |
|||
000000000000011000000000000011000000000000110000000000001100000000000110000000000110000000001100000000110000000110000001100000110000110001100110110 |
|||
000000000000111000000000000111000000000001110000000000011100000000001110000000001110000000011100000001110000001110000011100001110001110011101111110 |
|||
000000000001111000000000001111000000000011110000000000111100000000011110000000011110000000111100000011110000011110000111100011110011110111111111110 |
|||
000000000011111000000000011111000000000111110000000001111100000000111110000000111110000001111100000111110000111110001111100111110111111111111111110 |
|||
000000000111111000000000111111000000001111110000000011111100000001111110000001111110000011111100001111110001111110011111101111111111111111111111110 |
|||
000000001111111000000001111111000000011111110000000111111100000011111110000011111110000111111100011111110011111110111111111111111111111111111111110 |
|||
000000011111111000000011111111000000111111110000001111111100000111111110000111111110001111111100111111110111111111111111111111111111111111111111110 |
|||
000000111111111000000111111111000001111111110000011111111100001111111110001111111110011111111101111111111111111111111111111111111111111111111111110 |
|||
000001111111111000001111111111000011111111110000111111111100011111111110011111111110111111111111111111111111111111111111111111111111111111111111110 |
|||
000011111111111000011111111111000111111111110001111111111100111111111110111111111111111111111111111111111111111111111111111111111111111111111111110 |
|||
000111111111111000111111111111001111111111110011111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 |
|||
001111111111111001111111111111011111111111110111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 |
|||
011111111111111011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 |
|||
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110</pre> |