| @@ -0,0 +1,21 @@ | |||
| #include <stdio.h> | |||
| int countBits(int); | |||
| int hammingDistance(int x, int y) { | |||
| return countBits(x ^ y); | |||
| } | |||
| int countBits(int v) { | |||
| int c; | |||
| for (c = 0; v; v >>= 1) { | |||
| c += v & 1; | |||
| } | |||
| return c; | |||
| } | |||
| int main() { | |||
| printf("Expected: 2\n"); | |||
| printf("Got: %d\n", hammingDistance(1, 4)); | |||
| return 0; | |||
| } | |||
| @@ -0,0 +1,19 @@ | |||
| The Hamming distance between two integers is the number of positions at which the corresponding bits are different. | |||
| Given two integers x and y, calculate the Hamming distance. | |||
| Note: | |||
| 0 ≤ x, y < 231. | |||
| Example: | |||
| Input: x = 1, y = 4 | |||
| Output: 2 | |||
| Explanation: | |||
| 1 (0 0 0 1) | |||
| 4 (0 1 0 0) | |||
| ↑ ↑ | |||
| The above arrows point to positions where the corresponding bits are different. | |||
| @@ -0,0 +1,5 @@ | |||
| #!/bin/bash | |||
| gcc -o main main.c | |||
| ./main | |||
| rm main | |||