From 1ebb82f4c952d34c126060dbbd24dd1ee30be33a Mon Sep 17 00:00:00 2001 From: Steven Wilson Date: Thu, 8 Jul 2021 20:01:04 +0100 Subject: add solution week 120 task 1 in perl --- challenge-120/steven-wilson/perl/ch-1.pl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100755 challenge-120/steven-wilson/perl/ch-1.pl (limited to 'challenge-120') diff --git a/challenge-120/steven-wilson/perl/ch-1.pl b/challenge-120/steven-wilson/perl/ch-1.pl new file mode 100755 index 0000000000..5b3cc9c087 --- /dev/null +++ b/challenge-120/steven-wilson/perl/ch-1.pl @@ -0,0 +1,18 @@ +#!/usr/bin/env perl +# TASK #1 > Swap Odd/Even bits + +use strict; +use warnings; +use feature qw/ say /; +use Test::More; + +ok( swap_odd_even_bits(101) == 154, 'Input: $N = 101 Output: 154' ); +ok( swap_odd_even_bits(18) == 33, 'Input: $N = 18 Output: 33' ); +done_testing(); + +sub swap_odd_even_bits { + my $input = shift; + my $binary = sprintf( "%08b", $input ); + my $swapped = join( "", map { scalar reverse $_ } $binary =~ m/..?/g ); + return oct( "0b" . $swapped ); +} -- cgit