C++ 中的多数函数使用 3 uint8_t
Majority Function in C++ using 3 uint8_t
uint8_t a = 0x01; //00000001
uint8_t b = 0xff; //11111111
uint8_t c = 0xf0; //11110000
maj(a,b,c) = 0xf1; //11110001
我不确定如何访问和比较每一位以便得出结果?
result = (a & b) | (b & c) | (c & a);
@Henrik 已经提供了一个很好的直接解决方案,它需要 5 次操作。 FWIW 如果效率是一个问题,您可以将其减少到 4 个操作:
result = (a & (b | c)) | (b & c);
uint8_t a = 0x01; //00000001
uint8_t b = 0xff; //11111111
uint8_t c = 0xf0; //11110000
maj(a,b,c) = 0xf1; //11110001
我不确定如何访问和比较每一位以便得出结果?
result = (a & b) | (b & c) | (c & a);
@Henrik 已经提供了一个很好的直接解决方案,它需要 5 次操作。 FWIW 如果效率是一个问题,您可以将其减少到 4 个操作:
result = (a & (b | c)) | (b & c);