Perlには、のよう>>
に機能するが最上位ビットを削除するビット演算子はありますか?演算子>>
が関数に似ているようなものshift()
で、私はのようなビット演算子を探していますpop()
。
110110
戻るだろう10110
101
戻るだろう01
最終的に、2進数形式の数値がパリンドローム(つまり、11011、111、または1010101)であるかどうかを確認しようとしているので、理想的には、オペレーターは削除したビットを返す方法があります。数学的にそうすることができたので、演算子がそうしなくても大丈夫ですが、クリーンなコードのために、MSBを自動的に返すと素晴らしいでしょう。LSBについては、
$LSB=$mynum-2*($mynum>>1);
$mynum>>=1;