binary_multiplier.pl 510 B

12345678910111213141516171819202122232425262728293031
  1. #!/usr/bin/perl
  2. # Author: Daniel "Trizen" Șuteu
  3. # License: GPLv3
  4. # Date: 07 August 2015
  5. # Website: https://github.com/trizen
  6. # A very simple binary multiplier.
  7. # Derived from: https://en.wikipedia.org/wiki/Binary_multiplier#A_more_advanced_approach:_an_unsigned_example
  8. use 5.010;
  9. use strict;
  10. use warnings;
  11. my $a = 0b11110001;
  12. my $b = 0b11011011;
  13. say $a;
  14. say $b;
  15. say $a * $b;
  16. my @a = reverse(split(//, sprintf("%b", $a)));
  17. my $p = 0;
  18. foreach my $i (@a) {
  19. $i && ($p += $b);
  20. $b <<= 1;
  21. }
  22. say $p;