#!/usr/bin/env perl use strict; use warnings; my $data = 0b1111_1111_1111; my $offset = 8; my $nibble_mask = 0xF; while (not 1<<$offset-1 & $nibble_mask) { $data ^= $nibble_mask; $nibble_mask <<= 4; } $data = $data ^ $nibble_mask; printf("%b\n",$data);