【関数化】ビット演算 0x03
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
144:デフォルトの名無しさん 09/07/06 20:01:13 if(0 == (n + 4) >> 6) { } 145:デフォルトの名無しさん 09/07/06 20:58:51 >>144 nを60にしても1なんですけどー 146:デフォルトの名無しさん 09/07/07 03:43:18 >>141 if( (n%60) ) { 0じゃないほう } else { 0のほう } %は言語によって MOD とかもある。 147:デフォルトの名無しさん 09/07/07 04:08:05 え、マジで言ってる? このスレの住人にも不可能なの? 148:,,・´∀`・,,)っ-○○○ 09/07/07 20:47:14 分岐のオーバーヘッドは高くないと仮定して、除算の平均回数を減らすほうがいいだろ if ((n & 3) || (n % 60)) 149:デフォルトの名無しさん 09/07/08 00:49:59 0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 の時だけ割り算か。1/4になったね。 4の倍数に注目したらもうちょっとなんとかならない? 150:デフォルトの名無しさん 09/07/08 00:52:29 >>148 if(n & 3) return 0; x=((n>>2)*0x01111111)>>12; return !x || x==0xf; まあ掛け算で桁あふれのない n<16444 どまりだけどね。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5388日前に更新/45 KB
担当:undef