#!/usr/bin/perl -w use strict; print "power of 2 bit of 1 is: ",MSbit(1),"\n"; #prints 0 print "power of 2 bit of 8 is: ",MSbit(8),"\n"; #prints 3 my $num = 256; print "power of 2 bit of $num is: ",MSbit($num),"\n"; #prints 8 $num = $num << 1; print "power of 2 bit of $num is: ",MSbit($num),"\n"; #prints 9 $num = 254; print "power of 2 bit of $num is: ",MSbit($num),"\n"; #prints 7 $num = $num << 1; print "power of 2 bit of $num is: ",MSbit($num),"\n"; #prints 8 #Most Significant bit numbering is like #...9876543210 # sub MSbit ##returns power of 2 of MS bit { my $num = shift; die "illegal value in MSbit" if $num == 0; my $bit =-1; while ($num != 0) { $num = $num >> 1; $bit++; } return $bit; } __END__ output of above is: power of 2 bit of 1 is: 0 power of 2 bit of 8 is: 3 power of 2 bit of 256 is: 8 power of 2 bit of 512 is: 9 power of 2 bit of 254 is: 7 power of 2 bit of 508 is: 8