- 170 名前:416 ◆HoSW/FCI mailto:sage [02/04/21 23:21 ID:???]
- >>160
ビットシフト(<<,>>)や論理演算(&,|,^)を使います。 例えば、10進数「38725」は2進数で表すと「1001011101000101」です。めんどいので16ビットだけね。 まず、1番下の8桁を取り出す場合は「a=38725&255」とします。ポイントは255で、2進数では「11111111」。さっきの式では 1001011101000101 0000000011111111 &(<-ズレるんでこっちに書きました) で 0000000001000101 となります。論理演算子「&」は、両者が1だと1、それ以外だと0になるわけで。(1&1=1,1&0=0,0&1=0,0&0=0) 次にその上の8桁を取り出すときは、「a=38725>>8」とします。すると、2進数が右にずれて「1111111110010111」になるはず。右にズレるとき、存在しない桁が左に現れるわけですが、たしか1になるはず。0かも(符号無しintが0だった記憶)。 あとは、さっきと同じように「&255」すればok。
|

|