我正在尝试一个基本的哈希表程序..它是在一个整数中计算 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;
}
可能是一个简单的逻辑...