【関数化】ビット演算 0x03at TECH【関数化】ビット演算 0x03 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドの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 どまりだけどね。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch