C 代码 - 一种在没有 "if"的情况下将 5 转换为 7 以及将 7 转换为 5 的方法

标签 c bit-manipulation low-level low-level-code

我想编写一个获取数字 X 的函数,如果 X=5 则返回 7 ,如果 X=7 则返回 5 否则返回其他内容。 有一种简单的方法——使用“if” block 另一种方式 - 使用 map (5 映射到 7,7 映射到 5) 第三种方式——写出匹配的线性数学方程式 但是我正在寻找第 4 种方法(再次 - 根本不使用“if” block )。

感觉需要使用位运算,但我在这方面不占优势,所以需要帮助。

有什么想法吗?

谢谢!

最佳答案

int fun(int p)
{
    return p^2;
}

关于C 代码 - 一种在没有 "if"的情况下将 5 转换为 7 以及将 7 转换为 5 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22349267/

相关文章:

unicode - 如何在 Unicode 中将字符串设置为大写/小写?

c++ - 是否可以在不使用任何头文件的情况下在 C++ 中执行 I/O 操作?

c++ - 为什么要这样声明宏?

c - 为什么编译器不删除无用的循环?

c++ - 带有 header 的 Makefile 包括 header

javascript - 如何从十六进制字符串构建二进制数组

c# - 如何在不使用^的情况下实现XOR?

c# - 强制执行内存级别转换

c - #if 定义的预处理器运算符中的括号是什么意思?

python - 在二进制补码表示中格式化负整数