integer がn
あり、ビット演算のみを使用して数値の下 2 桁を切り捨てたいと考えています。
したがって、通常の算術では、 と同じくらい簡単n /= 100
です。しかし、これをビット演算でどのように行うのでしょうか?
ありがとう、
(ちなみにこれはC++です)
[編集]: たとえば、番号が与えられた場合、1234
取得したいです12
。(下2桁は切り捨て34
)
[Edit2:] 質問を言い換えさせてください。負の入力が与えられたときに、数値の最後の 2 桁を切り捨てるはずの特定の関数が問題を起こす理由を理解しようとしています。(そして、私はこの関数のコードを持っていません)
入力のセットとそれに対応する出力は次のとおりです。
-200901 ==> 186113241
-200801 ==> 186113242
-200701 ==> 186113243
-200601 ==> 186113244
-190001 ==> 186113350
-190101 ==> 186113349
-190201 ==> 186113348
-190301 ==> 186113347