エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
C++のプログラムでパリティを計算する関数を高速化しようとして、for文でビット数数えるとかパリティビ... C++のプログラムでパリティを計算する関数を高速化しようとして、for文でビット数数えるとかパリティビット生成回路がXORなのを元にシフトとXORで計算するとかいう方法が普通のようで、AIに「C++にてパリティチェックを行う最速の関数を教えてください」と聞いてもこのサイトを参考にするのか全く一緒の回答が返ってくるのだが、もうちょっとだけでも最適化できないものかと思って考えてみた。 単純に元の値を2進数にして立っているビット数の合計が奇数・偶数かでパリティが求められるなら、値のビット数を数える標準ライブラリがあればそれを使った方が最速(コンパイラが勝手に最適化してくれる)んじゃないのか、ってことで、該当のstd:bitset.count()を使った関数だとこうなるはず。 int parity(uint32_t val) { return std::bitset<32>(val).count(