정수의 비트들이 회문을 이루는지 체크하기 위해서는 정수N의 비트들을 거꾸로 변환하여 임시 변수에 넣어둔 후, 이 임시변수와 입력 정수가 같은지를 체크하면 된다. 만약 정수가 양의 정수라면 다음과 같이 구현할 수 있다.
bool IsPalindrome(int n) { int rev = 0; int t = n; while (t != 0) { rev <<= 1; rev |= t & 1; t >>= 1; } return (rev == n); }
만약 정수가 음수인 경우 위와 같이 오른쪽으로 Shift를 하게 되면 무한루프에 빠지게 되므로, 이런 경우는 반대로 체크값 1을 계속 왼쪽으로 Shift하는 방법을 고려해 볼 수 있다.