Bitwise IO: Difference between revisions

→‎{{header|Perl}}: adding Perl6 section
(Added BBC BASIC)
(→‎{{header|Perl}}: adding Perl6 section)
Line 765:
print pack("C1", $v);
}</lang>
 
==[[Perl 6]]==
<lang Perl 6>
sub encode-ascii(Str $s) {
my @b = gather for $s.ords { take .fmt("%07b").comb }
@b.push(0) until @b %% 8; # padding
Buf.new: gather while @b { take reduce * *2+*, (@b.pop for ^8) }
}
 
sub decode-ascii(Buf $b) {
my @b = gather for $b.list { take .fmt("%08b").comb }
@b.shift until @b %% 7; # remove padding
@b = gather while @b { take reduce * *2+*, (@b.pop for ^7) }
return [~] @b».chr;
}
say my $encode = encode-ascii 'STRING';
say decode-ascii $encode;
</lang>
{{out}}
<pre>Buf:0x<03 8b 99 29 4a e5>
STRING</pre>
 
=={{header|PL/I}}==
1,934

edits