http://qs321.pair.com?node_id=295459


in reply to Binary Math?

Use oct to go from bitstrings to numbers and sprintf to go from a number to a bitstring. As for the math, the usual operators work once you've done the conversion.
#!/usr/bin/perl use strict; use warnings; my $bitstring1 = shift @ARGV || '10010010111'; my $bitstring2 = shift @ARGV || '01101011010'; my $number1 = oct "0b$bitstring1"; my $number2 = oct "0b$bitstring2"; printf "%s + %s = %b\n", $bitstring1, $bitstring2, $number1 + $number2 +;

Update

As BrowserUK mentioned, this will only get you as far as your platform's integer types allow. Fortunately, Math::BigInt also accepts the '0b' prefix for input and has the as_bin method for output, and has replacements for oodles of math operations.