もう答も出ているのでなんですが、一応。 >> は算術右シフトなんですが << は論理左シフトなので31bit目の符号もそのままシフトされます。 頭に0が並んでもよければ << で0~31ビット分順にシフトして、31bit目の0/1を !!(A AND &H80000000) で取り出していくと楽かも。