从C中的二进制"components"构造一个int

Zeb*_*ebs 3 c arrays binary arduino

我有几个方程式将返回我的数字中三位中的每一位的二进制值.

我用C语言编程,这对我来说是一种新语言.

所以让我们说我的方程返回Y0 = 1,Y1 = 0Y2 = 1(101); 我希望将该值存储为5.

如果这些值由不同的方程返回,那么这在C中是否可行?

我知道如何通过乘法来做到这一点,但我正在寻找一个函数或我想象已经内置到C中的东西.

pmg*_*pmg 5

没有这样的运气.你必须乘(或换班,这是相同的)

unsigned Y0 = 1, Y1 = 0, Y2 = 1, val;

val = (Y0 * 4)  + (Y1 * 2)  + (Y2 * 1);  /* parens */
val = (Y0 << 2) + (Y1 << 1) + (Y2 << 0); /* redundant */
Run Code Online (Sandbox Code Playgroud)