http://www.perlmonks.org?node_id=11107863


in reply to bit array comparison

#!/usr/bin/perl use common::sense; # https://perlmonks.org/?node_id=11107846 my $a = 0; my $b = 0; $a |= 1 << 0; $a |= 1 << 1; $b |= 1 << 1; $b |= 1 << 2; my $i = $a & $b; my $u = $a | $b; my $i_cnt = unpack '%32b*', pack 'N', $i; my $u_cnt = unpack '%32b*', pack 'N', $u; printf "a is %#032b %d\n", $a, $a; printf "b is %#032b %d\n", $b, $b; printf "intersection is %#032b %d\n", $i, $i; printf "union is %#032b %d\n", $u, $u; say "set bit count in intersection: $i_cnt"; say "set bit count in union: $u_cnt";

Gives your expected result.