Я написал чистую версию для 32-битных целых чисел и английского языка:
http://www.source-code.biz/snippets/java/13.htm