PHP, 61 68 bytes
<?=strlen(max(explode(0,strtr($s=decbin($argv[1]),10,"01")."0$s")));
takes input from command line argument.
- convert input to binary
- concat inverted binary + "0" + binary
- split by
0
-> array of "11" "1111" etc.
- get longest streak -> string of
1
s
- print string length
96 85 bytes for arbitrary length input: coubt the bits in a loop (PHP 7.1):
for($d=2;$a=&$argv[1];$n*=$d==$b=$a[-1]%2,$d=$b,$a=bcdiv($a,2))++$n<$m?:$m=$n;echo$m;
+3 bytes for older PHP:
for($d=2;$a=&$argv[1];$n*=$d==$b=bcmod($a,2),$d=$b,$a=bcdiv($a,2))++$n<$m?:$m=$n;echo$m;
or 96 81 bytes (PHP 5.6 or later with gmplib)
for($a=gmp_init($argv[1])*$d=2;$a>>=1;$n*=$d==$a%2,$d=$a%2)$m=max($m,++$n);echo$m;
manually counting the bits in a GMP number