私は基本的なハッシュテーブルプログラムを試しています..整数の1の数を数えます:
1の数が入った配列であるハッシュテーブルがあります0,1,2...E,F
HashTable:
0 0
1 1
2 1
3 2
4 1
5 1
6 2
7 3
8 1
9 2
A 2
B 3
C 2
D 3
E 3
F 4
ここで、整数から 8 つのニブルを抽出してarr[nibble-value]
、各ニブルの 1 の数を取得できるようにします。
int arr[16] = {0,1,1,2,1,1,2,3,1,2,2,3,2,3,3,4};
int main (void)
{
int x = 127;
int temp, sum =0, i;
int nibbles = 2 * sizeof(x);
for (i = 1; i<= nibbles; i++)
{
temp = x << (4*i); // <<< I Know this is wrong!!!! <<Here is what I need!!>>
printf("Temp[%d]:%d\n", i, temp);
sum = sum + arr[temp];
}
printf("No.of ones: %d\n", sum);
return 0;
}
単純な論理かもしれません...