【関数化】ビット演算 0x03
■ このスレッドは過去ログ倉庫に格納されています
0004デフォルトの名無しさん
2008/11/08(土) 23:20:46とりあえず命令の並列度を高めてみた。
unsigned rev(unsigned n){
n = (n<<24) |(n<<8&0x00FF0000) | (n>>8&0x0000FF00) |(n >> 24);
n = (n<<6&0xC0C0C0C0) | (n<<2&0x30303030) | (n>>2&0x0C0C0C0C) | (n>>6&0x03030303);
n = (n<<1&0xAAAAAAAA) | (n>>1&0x55555555);
return n;
}
■ このスレッドは過去ログ倉庫に格納されています