优先编码器只对同时输入的信号中的优先级别最高的一个信号编码。

优先编码器只对同时输入的信号中的优先级别最高的一个信号编码。,第1张

优先编码器允许同时在几个输入端有输入信号,编码器按输入信号排定的优先顺序,只对同时输入的几个信号中优先权最高的一个进行编码。

如果同时有两个或以上的输入作用于优先编码器,优先级最高的输入将会被优先输出。下图是一位4线-2线编码器的例子,其中最高优先级的输入在功能表的左侧,而“x”代表无关项,即可是1也可是0,也就是说不论无关项的值是什么,都不影响输出,只有最高优先级的输入有变化时,输出才会改变。

扩展资料:

工作形式

优先级编码器以标准IC形式提供,TTL 74LS148是一个8至3位优先级编码器,具有8个低电平有效(逻辑“0”)输入,并在其输出端提供排名最高的输入的3位代码。

优先编码器首先输出最高阶输入,例如,如果输入行“ D2 ”,“ D3 ”和“ D5 “同时应用输出代码将用于输入” D5 “(”101“),因为它具有3个输入中的最高顺序。一旦输入“ D5 ”被删除,下一个最高输出代码将用于输入“ D3 ”(“011”),依此类推。

-优先编码器

1注意运算符的运算对象

自增、自减运算符只能作用于变量,而不能作用于常量或表达式。因为自增、自减运算符具有对运算量重新赋值的功能,而常量、表达式无存储单元可言,当然不能做自增、自减运算。只要是标准类型的变量,不管是整型、实型,还是字符型、枚举型都可以作为这两个运算符的运算对象。如以下四个表达式都是合法的:i+++j++、++i+(++j)、++a+b++、++array〔--j〕;而++6、(i+j)++、‘A’++、++i+++j、(&p)++这五个表达式却是不合法的。为什么i+++j++合法,而++i+++j却不合法C的编译器对程序编译时,从左到右尽可能多地将字符组合成一个运算符或标识符,因此i+++j++等效于(i++)+(j++),两个“++”作用的对象都是变量,这是合法的;而++i+++j等效于++(i++)+j,第1个“++”作用的对象是表达式“i++”,这是不允许的。

2注意运算符的结合方向

表达式k=-i++等效于k=(-i)++还是k=-(i++)因为负号运算符和自增运算符优先级相同,哪一个正确就得看结合方向。自增、自减运算符及负号运算符的结合方向是从右向左。因此,上式等效于k=-(i++);若i=5,则表达式k=-i++运算之后k的值为-5,i的值为6。此赋值表达式的值即为所赋的值-5。不要因为k=-i++等效于k=-(i++)就先做“++”运算!这里采用的是“先用后变”,即先拿出i的值做负号“-”运算,把这个值赋给变量k之后变量i才自增。

希望对你有帮助

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/langman/503986.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-01
下一篇2023-07-01

发表评论

登录后才能评论

评论列表(0条)

    保存