C言語なら俺に聞け(入門篇) Part 54
■ このスレッドは過去ログ倉庫に格納されています
0470デフォルトの名無しさん
2009/10/17(土) 18:39:5316ビット長の値(unsigned short)を4ビットずつ分割して、その分布を調べて
ソートする、というアルゴリズムらしいのですが、ちょっとわからない点があります。
2^4 = 16 ですから、分布を数えるために使う配列は int count[16] と宣言しました。
16ビット長の値を4ビットずつ分割して(分割された値を A とします)、その分布を調べるわけですが、
教科書にあるコードは
count[A & 0x0f]++;
となっています。
ここで、A & 0x0f するのはどうしてでしょうか?
A は4ビット長なわけですから、大きさ16の配列 count に収まるはずです。
なぜ、わざわざ 0x0f との論理積を求めるのか謎です。
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています