# PHP, not competing I wanted to do it without using strings at all. iterative solution, 78 bytes for($x=log($n=$argv[1],2);$i<$x&($n>>$i^$n>>$x-$i^1);$i++);echo$i<$x/2?NO:YES; recursive solution, 113 bytes function p($n,$x=0){return$n<2?$n:is_pal(($n&(1<<$x=log($n,2)/2)-1)^$n>>$x+!is_int($x));}echo p($argv[1])?YES:NO; If `n` is a binary palindrome, the upper half xor the lower half is also a binary palindrome and vice versa. --- a port of the excellent [C answer from fR0DDY](https://codegolf.stackexchange.com/q/722#722), 58 bytes for($x=2*$v=$argv[1];$x/=2;$r=$r*2|$x&1);echo$r-$v?NO:YES; a binary reverse. Columbus´ egg.