目录
运算符按其功能可分为以下几类:
按其所带操作数的个数运算符可分为三种:
基本的算术运算符:
在进行整数除法运算时,结果值要略去小数部分,只取整数部分。而进行取模运算时,结果值的符号位采用模运算式里第一个操作数的符号位。见下例。
在进行算术运算操作时,如果某一个操作数有不确定的值x,则整个结果也为不定值x
位运算符:
位运算符中除了~是单目运算符以外,均为二目运算符,即要求运算符两侧各有一个操作
位运算符中的二目运算符要求对两个操作数的相应位进行运算操作
1) "取反"运算符~
2) "按位与"运算符&
3) "按位或"运算符|
4) "按位异或"运算符^(也称之为XOR运算符)
5) "按位同或"运算符^~
6) 不同长度的数据进行位运算
两个长度不同的数据进行位运算时,系统会自动的将两者按右端对齐.位数少的操作数会在相应的高位用0填满,以使两个操作数按位进行操作.
逻辑运算符:
关系运算符:
在进行关系运算时,如果声明的关系是假的(flase),则返回值是0,如果声明的关系是真的(true), 则返回值是1,如果某个操作数的值不定,则关系是模糊的,返回值是不定值。
等式运算符:
这四个运算符都是二目运算符,它要求有两个操作数。"=="和"!="又称为逻辑等式运算符。其结果由 两个操作数的值决定。由于操作数中某些位可能是不定值x和高阻值z,结果可能为不定值x。而"===" 和"!=="运算符则不同,它在对操作数进行比较时对某些位的不定值x和高阻值z也进行比较,两个操 作数必需完全一致,其结果才是1,否则为0。"==="和"!=="运算符常用于case表达式的判别,所以又 称为"case等式运算符"。这四个等式运算符的优先级别是相同的。下面画出==与===的真值表, 帮助理解两者间的区别。
下面举一个例子说明“==”和“===”的区别。
移位运算符:
位拼接运算符(Concatation):
这个运算符可以把两个或多个信号的 某些位拼接起来进行运算操作
缩减运算符:
缩减运算符是单目运算符,也有与或非运算。其与或非运算规则类似于位运算符的与或非运算 规则,但其运算过程不同。位运算是对操作数的相应位进行与或非运算,操作数是几位数则运算结果也 是几位数。而缩减运算则不同,缩减运算是对单个操作数进行或与非递推运算,最后的运算结果是一位 的二进制数。缩减运算的具体运算过程是这样的:第一步先将操作数的第一位与第二位进行或与非运 算,第二步将运算结果与第三位进行或与非运算,依次类推,直至最后一位。