ちくやらアーカイブ

このブログは気分よって構成されています。 BGMも気分で流してます。 あなたの忍耐に感謝します。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告|
  3. トラックバック(-)|
  4. コメント(-)

ビット計算

AND
OR
XOR
NOT
についてはそれぞれすでに知っているものとして、



x = -7;

x >> 30は
intは32ビットだから
1111 1111 1111 1111 1111 1111 1111 1001
これを気合いで右に30シフトするが
>>だから符号は保持されるので
1111 1111 1111 1111 1111 1111 1111 1111
の-1

x >>> 30だと0で埋められるから
0000 0000 0000 0000 0000 0000 0000 0011
の3になる。




4 | 5 ^ 6 & 7

これの優先順位は

& > ^ |
である。
つまり、
and > xor > or

すると、
0110
0111のand→0110

0110
0101のxor→0011

0100
0011のor→0111で7が答え。


・-32 >>> 4 >> 4 >>> 4 >> 4 >>> 4 >> 4
という問題。
これ、4*6=24ビットを右にシフトするので
とりあえず32-24=8ビットになるんだけど、
その8ビットが逆に残るというわけ。
元の上位8ビットがそのままのこる。
そんな感じでわざわざやらなくても簡単に求めることが
できるやつもある。



● ~チルダ

・~(チルダ)だが、ビットの反転だけじゃないっぽい。
実際は「-x-1」
という計算扱い。


x=5は
~xで-6になる。

スポンサーサイト
  1. 2005/04/02(土) 14:01:47|
  2. 資格:SJC-P|
  3. トラックバック:0|
  4. コメント:0
<<基本データ型と演算精度など | ホーム | 配列変数>>

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://runark.blog6.fc2.com/tb.php/15-3083c3da

ルナーク

Category

Recent Comments

Recent Entries

Recent Trackbacks

Archives

Links

Search

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。