在C语言中,mux芯片的符号是什么?
当我开始研究逻辑门时,我知道每个逻辑门都已经在在C语言中,mux芯片的符号是什么?,c,symbols,boolean-logic,mux,C,Symbols,Boolean Logic,Mux,当我开始研究逻辑门时,我知道每个逻辑门都已经在C中定义了。例如,对于和逻辑门,符号为&。对于或,它是|。但是我找不到MUX芯片的符号 那么,如果有一个符号表示MUX,有人能告诉我吗?如果没有,有人能告诉我如何在C中复制一个MUX芯片吗?C有四个位运算符: 以及,&,如a&b 或者,|,如a | b 异或,^,如a^b 不是,~,如~a 没有MUX运算符 注意你的措辞。这些被称为按位运算符,类似于应用于整数类型中所有位的逻辑门。在C语言中,逻辑运算符是不同的。请注意,C语言的抽象级别远远高于逻
C
中定义了。例如,对于和
逻辑门,符号为&
。对于或
,它是|
。但是我找不到MUX
芯片的符号
那么,如果有一个符号表示
MUX
,有人能告诉我吗?如果没有,有人能告诉我如何在C中复制一个MUX
芯片吗?C有四个位运算符:
- 以及,
,如&
a&b
- 或者,
,如|
a | b
- 异或,
,如^
a^b
- 不是,
,如~
~a
MUX
运算符
注意你的措辞。这些被称为按位运算符,类似于应用于整数类型中所有位的逻辑门。在C语言中,逻辑运算符是不同的。请注意,C语言的抽象级别远远高于逻辑门,因此进行此类比较可能会导致混淆。也就是说,最接近解复用器的是左移位运算符(因为它更简单,所以我将从它开始):
output = cond ? a : b
这将有效地从
c中选择索引b
(从最低有效位开始)处最接近的位是条件运算符:?
:
例如:
如果x
为0
则得到a
如果1
(或任何其他)则得到b
此运算符处理整个值,如|
&
==
和代码>执行。它不像^
~&
和|
那样对位进行操作
对于多输入多路复用器,没有直接等价物。
但您可以使用匿名数组来伪造一个,例如:
((int[]){a,b,c,d,})[x]
但许多人不赞成这种形式的建筑
如果您需要一个位多路复用器,则需要从位运算符构建它
例如:
|
、&
和~
运算符是位运算符。它们在操作数中的各个位上并行工作。多路复用器没有相应的位运算符。三元运算符:
output = cond ? a : b
接近,但选择器操作数被视为单个位,而不是位向量(即,所有输出位来自a
或所有输出位来自b
,不能让一些输出位来自a
和一些来自b
)。要获得真正的逐位多路复用器,其中选择器是从a
或b
中选择单个位的向量,您可以按照从离散逻辑门构建一个选择器的方式来实现它:
output = (cond & a) | (~cond & b);
这里,a
cond
位中的1
允许a
中的对应位通过,并阻止b
中的对应位(因为b
被反向条件屏蔽)。Acond位中的0
阻止A
中的相应位,并允许b
中的相应位通过。这两个被屏蔽的值是按位或加在一起的,因此输出位是a
或b
的对应位,具体取决于c
中对应位的状态 那么,有没有一种方法可以用这些芯片制作出一个MUX
芯片呢?@AshishAhuja一个MUX通常不是在C级编写的。同一任务通常以其他几种方式完成,例如条件(if
、开关
或?:
)和数组查找、位打包或其他方式。这完全取决于你想用你的多路复用器做什么。请记住,C不是一种硬件语言,它是一种高级语言。谢谢你告诉我这一点,但如果你想这么做,有什么不对吗。我这样做是因为我在学习电路和硬件。而且,我不想焊接,就像上次我在电路上焊接一样,我烧伤了一根手指。不烧伤手指的焊接是一项重要技能。这不是我完全掌握的技能,如果我第二天没有水泡,我认为这是成功的。你到底希望一个多路复用器操作员如何工作?你将如何提供它的输入?@Dmitri,我将创建一个函数,在其中传递它的输入。你的意思是说,你不能在C
中创建MUX
?(顺便说一句,到目前为止,我没有对任何人的答案投反对票或赞成票。)看起来我们都得到了一个答案,只有一个答案立即得到了赞成票。我会继续取消你的否决票。你知道什么是多路复用器吗?@AshishAhuja:我的意思是,这个问题没有意义,因为多路复用器是数字电路,而不是编程结构。但是,如果将int
值解释为总线,则可以做出具有类似效果的操作-但当执行程序时,该操作很可能不会由实际的MUX执行(除非MUX是处理器算术逻辑单元的一部分,但如前所述,这是在一个低得多的级别上)亚当:谢谢你;和你一样。
a ^ (( b ^ a ) & x)
output = cond ? a : b
output = (cond & a) | (~cond & b);