diff --git a/Week3/week3.c b/Week3/week3.c index 8df14a6..fa62366 100644 --- a/Week3/week3.c +++ b/Week3/week3.c @@ -90,3 +90,20 @@ char* addBinary(char *a, char *b) { return &outString[l_x-i]; } +int minBitFlips(int start, int goal) { + // Use XOR operation to get the correct mask + uint32_t mask = start ^ goal; + + // Number of flips + uint8_t flips = 0; + + // Tally all of the 1's + while (mask > 0) { + flips += (mask&1); + mask >>= 1; + } + + // Return value. + return flips; +} +