以下程序执行后控制台输出为()
#include <stdio.h> int f(int n) { int i = 0; for (int k = 1; k <= n; k *= 2) ++i; for (int j = i / 2; j > 0; --j) { int v1 = (1 << (j - 1)); int v2 = (1 << (i - j)); bool flag1 = ((n & v1) != 0); bool flag2 = ((n & v2) != 0); if (flag1 != flag2) { n ^= v1; n ^= v2; } } return n; } int main(int argc, char* argv[]) { printf("%d", f(3456)); return 0; }