Windows標準の電卓 プログラマ機能について
最近知ったのですが、メニューの[表示]から[プログラマ]を選択することでこのモードにすることが出来ます。
曖昧でよくわからない名前の機能ですが、要はビット演算に特化した電卓です。
10進数や16進数の相互変換や計算はもちろん、ビット列が一目で確認出来るのでメモリダンプの解析等に重宝しそうです。
(整数しか扱えません。負の数の補数表現にも対応してます。)
他の電卓にはない見慣れないボタン群
データ型
Byte = 1 byte = 8 bits
Word = 2 bytes
Dword = 4 bytes
Qword = 8 bytes
DwordのDはDouble, QwordのQはQuadです。
ビット演算のおさらい
積(AND) &
22 & 115 → 18
0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | |
AND | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 |
= | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
---|
和(OR) |
22 | 115 → 119
0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | |
OR | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 |
= | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 |
---|
左シフト <<
115 << 2 → -52
<<2 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 |
= | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
---|
※実際は32ビットの整数として扱われるので115 << 2 → 460
符号付き右シフト >>
115 >> 2 → 28
>>2 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 |
= | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
---|
※左端(符号ビット)固定
符号なし右シフト >>>
115 >>> 2 → 28
>>>2 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 |
= | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
---|
*1:参考:負数(2の補数表現) <実体験から始める情報講座 by kayakaya>