Set right-adjacent bits: Difference between revisions
Content added Content deleted
(→{{header|Raku}}: Incomplete) |
|||
Line 51: | Line 51: | ||
* Use it to show, here, the results for the input examples above. |
* Use it to show, here, the results for the input examples above. |
||
* Print the output aligned in a way that allows easy checking by eye of the binary input vs output. |
* Print the output aligned in a way that allows easy checking by eye of the binary input vs output. |
||
=={{header|Perl}}== |
|||
<lang perl>#!/usr/bin/perl |
|||
use strict; # https://rosettacode.org/wiki/Set_right-adjacent_bits |
|||
use warnings; |
|||
while( <DATA> ) |
|||
{ |
|||
my ($n, $input) = split; |
|||
my $width = length $input; |
|||
my $result = ''; |
|||
$result |= substr 0 x $_ . $input, 0, $width for 0 .. $n; |
|||
print "n = $n width = $width\n input $input\nresult $result\n\n"; |
|||
} |
|||
__DATA__ |
|||
2 1000 |
|||
2 0100 |
|||
2 0011 |
|||
2 0000 |
|||
0 010000000000100000000010000000010000000100000010000010000100010010 |
|||
1 010000000000100000000010000000010000000100000010000010000100010010 |
|||
2 010000000000100000000010000000010000000100000010000010000100010010 |
|||
3 010000000000100000000010000000010000000100000010000010000100010010</lang> |
|||
{{out}} |
|||
<pre> |
|||
n = 2 width = 4 |
|||
input 1000 |
|||
result 1110 |
|||
n = 2 width = 4 |
|||
input 0100 |
|||
result 0111 |
|||
n = 2 width = 4 |
|||
input 0011 |
|||
result 0011 |
|||
n = 2 width = 4 |
|||
input 0000 |
|||
result 0000 |
|||
n = 0 width = 66 |
|||
input 010000000000100000000010000000010000000100000010000010000100010010 |
|||
result 010000000000100000000010000000010000000100000010000010000100010010 |
|||
n = 1 width = 66 |
|||
input 010000000000100000000010000000010000000100000010000010000100010010 |
|||
result 011000000000110000000011000000011000000110000011000011000110011011 |
|||
n = 2 width = 66 |
|||
input 010000000000100000000010000000010000000100000010000010000100010010 |
|||
result 011100000000111000000011100000011100000111000011100011100111011111 |
|||
n = 3 width = 66 |
|||
input 010000000000100000000010000000010000000100000010000010000100010010 |
|||
result 011110000000111100000011110000011110000111100011110011110111111111 |
|||
</pre> |
|||
=={{header|Python}}== |
=={{header|Python}}== |