Sun認定Java資格 実用情報【SJC-P用】at PROGSun認定Java資格 実用情報【SJC-P用】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト800:仕様書無しさん 04/05/19 06:12 age 801:仕様書無しさん 04/05/19 07:42 ソフトバンク本P58「シフト演算子」の所。 1111 1111 1111 1111 1111 1111 1111 1101が-3。なぜ? 1111 1111 1111 1111 1111 1111 1111 1111が-1。なぜ? ビットが解らない。だれかアドバイスください!おながいします。 802:仕様書無しさん 04/05/19 12:07 (32ビットでは大きいので)8ビットで考えよう。 まず,10進数の-1を符号付きの2進数で表すと,1111 1111 になることは分からない? 直感的に考えると何となく分かると思います。 10進数:(1) + (-1) = 0 この計算を2進数に置き換えてみよう。 2進数:(0000 0001) + (1111 1111) = 1 0000 0000(9ビット分) ⇒今は8ビットで考えているので9ビット目の1は破棄され,結果0になります。 32ビットだろうが64ビットだろうが,-1を符号付の2進数で表すと1で全部埋まります。 1111 1111(-1) から2を引くと 1111 1101(-3) になりますね。 ソフトバンクの本にもたぶん載ってると思うんだけど, -x = ~x + 1 は,公式として覚えておこう。 xのマイナスの値を求めたければ,「xの全ビットを反転し,1を加える」です。 これを「補数を求める」って表現することもあります。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch