#!/usr/bin/perl -w use strict; my $input = 0xEF; my $andMask = (2**(MSbit($input)+1))-1; printf ("%X\n", ($input<<1) & $andMask); ## prints DE sub MSbit ##returns power of 2 of MS bit { my $num = shift; my $bit =-1; while ($num != 0) { $num = $num >> 1; $bit++; } return $bit; }