当我学习逻辑门时,我知道每个逻辑门已经在C中定义了。例如,对于AND逻辑门,符号是&。对于OR,它是|。但是我找不到MUX芯片的符号。
那么,如果有一个MUX的符号,谁能告诉我吗?如果没有,有人能告诉我如何在C中复制MUX芯片吗?
发布于 2016-01-17 05:44:38
请注意,C操作的抽象级别要比逻辑门高得多,因此进行这样的比较可能会导致混淆。也就是说,最接近解复用器的是左移位操作符(我将从它开始,因为它更简单)
a << b假设a和b是int表达式,则该表达式将生成一个新的int,其位是移到左b时间的a比特。例如,如果a为0100011011010110,而b为3,则结果将是0011011010110000。现在,如果a为0或1,并且将得到的整数解释为总线,则这对应于解复用器。
一个多路复用器/选择器可以由右移位算子>>来实现,它将位移到右边。但是,必须用1对结果进行&编辑,以便清除您感兴趣的任何其他位元:
(c >> b) & 1这有效地从c中选择索引处的位(从最小有效位开始)。
发布于 2016-01-17 05:47:06
最近的是条件运算符:? :
例:
x ? b : a 如果x是0,你得到a,如果是1 (或者其他什么),你得到b
这个运算符处理整个值,比如|| && ==和! do。它不像^、~、&和|那样对位进行操作。
多输入mux没有直接等效。但是你可以用一个匿名数组来伪造一个,例如:
((int[]){a,b,c,d,})[x]但许多人对这种形式的结构不以为然。
如果您需要一个按位的mux,则需要从按位运算符构建它,例如:
a ^ (( b ^ a ) & x)发布于 2016-01-17 05:43:18
C有四个位运算符:
&,如在a & b中|,如在a | b中^,如在a ^ b中~,就像在~a没有MUX操作符。
小心你的措辞。它们被称为逐位运算符,类似于应用于整数类型的所有位的逻辑门。在C语言中,逻辑运算符是不同的。
https://stackoverflow.com/questions/34835468
复制相似问题