http://qs1969.pair.com?node_id=11144202


in reply to How can I set a bit to 0 ?

G'day bartender1382,

"What I don't know how to do ... turn off a specific bit whether it is set or not."

Update: This wasn't a good solution (see reply below). The following would have been better:

#!/usr/bin/env perl use strict; use warnings; my $var1 = 0b00010100; my $var2 = 0b00000110; my $fmt = "%08b\n"; print "Initial:\n"; printf $fmt, $var1; printf $fmt, $var2; for my $bit (0, 1, 4) { print "Bit $bit off:\n"; $var1 &= ~(1 << $bit); printf $fmt, $var1; $var2 &= ~(1 << $bit); printf $fmt, $var2; }

I've stricken the original code; it's in the spoiler. The output is unchanged.

Output:

Initial: 00010100 00000110 Bit 0 off: 00010100 00000110 Bit 1 off: 00010100 00000100 Bit 4 off: 00000100 00000100

— Ken