因此,我有三个变量,每个变量持有1或0。这三个变量在组合时形成地址0-7。例如
    var1 = 1;
    var2 = 0;
    var3 = 1;

将是5。

我将如何结合这三个变量以获得整数值?我听说移位操作是最好的方法,但是我不确定该怎么做。谢谢。

最佳答案

为安全起见,请确保值是0或1:并与1一起执行此操作
将这些0/1值移动到适当位置:使用<<运算符完成
合并它们:或这些值


如果var1 = 1; var2 = 0; var3 = 0应该为4,请使用以下命令:
((var1 & 1) << 2) | ((var2 & 1) << 1) | (var3 & 1)

如果var1 = 1; var2 = 0; var3 = 0应该为1,请使用以下命令:
((var3 & 1) << 2) | ((var2 & 1) << 1) | (var1 & 1)

关于c - 组合三个位以获得单个整数值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33128934/

10-11 15:24