On Sat, Jun 7, 2025 at 4:53 AM ToddAndMargo via perl6-users
<perl6-users@perl.org> wrote:
Is there an easy way to print ones' and two's compliment
of a 32 bit integer?
Many thanks, -T
On 6/7/25 10:22 AM, Paul Procacci wrote:
> my $number = 42;
> my $ones-complement = +^$number;
> my $twos-complement = +^$number + 1;
>
> ~Paul
>
First attempt:
$ repl
Welcome to Rakudo™ v2024.07.
Implementing the Raku® Programming Language v6.d.
Built on MoarVM version 2024.07.
[0] > my int32 $y=-1073741510
-1073741510
[1] > my $ones-complement = +^$y;
Bytecode validation error at offset 164, instruction 23:
operand type 32 does not match register type 24 for op getlex_ni in
frame <unit>
[1] > my $twos-complement = +^$y + 1;
Bytecode validation error at offset 164, instruction 23:
operand type 32 does not match register type 24 for op getlex_ni in
frame <unit>
No idea where to report this to.
Second attempt:
$ p6 'my int32 $y=-1073741510; my $ones-complement = +^$y; my
$twos-complement = +^$y + 1; print "\ny =
<$y>\nones-complement = <$ones-complement>\ntwos-complement =
<$twos-complement>\n\n";'
y = <-1073741510>
ones-complement = <1073741509>
twos-complement = <1073741510>
Thank you!
-T