【高速化】ビット演算 0x02
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
900:,,・´∀`・,,)っ-○◎● 08/09/27 13:13:06 bit8 = bit4 | ((bit4 & 0x8) ? 0xF0 : 0); これでいいのか? 901:894 08/09/27 13:35:56 なるほどsingned型って右シフトで上位ビットを補ってくれるのね。 CPUは普通のPCのIntel x86系です。 902:,,・´∀`・,,)っ-○◎● 08/09/27 13:49:08 x86ならシフト使う方法のほうが有効だろうね(Pentium 4はシフト遅いけど) bit4 = ecx bit8 = eax と仮定して mov eax, ecx sal eax, 28 sar eax, 28 and eax, 0xFF たった4命令で済む。bit4を破壊していいなら3命令。 903:デフォルトの名無しさん 08/09/27 19:47:32 >>895 ちがうだろ 算術シフトか論理シフトかはコンパイラ依存 904:デフォルトの名無しさん 08/09/27 19:50:09 100レスくらいで終わってもよさそうなのに実によく伸びるなこのスレ。 905:,,・´∀`・,,)っ-○◎● 08/09/27 22:02:58 まあメジャーなコンパイラならsignedで算術シフトになるけどね。 //でコメントにならないコンパイラ並みには非互換問題あるのかな? ローテートくらいまではC/C++標準仕様に入れておいて欲しいものだ
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5392日前に更新/206 KB
担当:undef