NOT 运算是一个逻辑运算符,用于对二进制数进行反转。它的操作结果是将输入中的 0 转换为 1,将 1 转换为 0。
NOT运算的语法如下:
NOT x
其中
x
是一个二进制数。
以下是 NOT 运算的真值表:
输入 | NOT 输出 |
---|---|
0 | 1 |
1 | 0 |
NOT 运算的应用
NOT 运算在计算机科学中有着广泛的应用,包括:- 位掩码:NOT 运算可用于创建位掩码,该掩码可用于清除或设置二进制数中的特定位。
-
双重否定:NOT 运算可用于对表达式进行双重否定。例如,
NOT (x != y)
等价于x == y
。 -
布尔代数简化:NOT 运算可用于简化布尔代数表达式。例如,
NOT (x AND y)
等价于NOT x OR NOT y
。 - 逻辑门实现:NOT 运算可以由逻辑门实现,如反相器。
示例
以下是一些 NOT 运算的示例:
NOT 0110 = 1001NOT 1010 = 0101NOT 1111 = 0000
结论
NOT 运算是一个重要的逻辑运算符,用于对二进制数进行反转。它在计算机科学中有着广泛的应用,包括位掩码、双重否定、布尔代数简化和逻辑门实现。二进制数的逻辑运算
二进制数的逻辑运算包括逻辑加法(“或”运算)、逻辑乘法(“与”运算)、逻辑否定(“非”运算)和逻辑“异或”运算。 (1)逻辑“或”运算又称为逻辑加,可用符号“+”或“∨”来表示。 逻辑“或”运算的规则如下:0+0=0或0∨0=00+1=1或0∨1=11+0=1或1∨0=11+1=1或1∨1=1可见,两个相“或”的逻辑变量中,只要有一个为1,“或”运算的结果就为1。 仅当两个变量都为0时,或运算的结果才为0。 计算时,要特别注意和算术运算的加法加以区别。 (2)逻辑“与”运算又称为逻辑乘,常用符号“×”或“· ”或“∧”表示。 “与”运算遵循如下运算规则:0×1=0或0·1=0或0∧1=01×0=0或1·0=0或1∧0=01×1=1或1·1=1或1∧1=1可见,两个相“与”的逻辑变量中,只要有一个为0,“与”运算的结果就为0。 仅当两个变量都为1时,“与”运算的结果才为1。 (3)逻辑“非”运算又称为逻辑否定,实际上就是将原逻辑变量的状态求反,其运算规则如下:可见,在变量的上方加一横线表示“非”。 逻辑变量为0时,“非”运算的结果为1。 逻辑变量为1时,“非”运算的结果为0。 (4)逻辑“异或”运算“异或”运算,常用符号“”或“”来表示,其运算规则为:00=0 或 00=001=1 或 01=110=1 或 10=111=0 或 11=0可见:两个相“异或”的逻辑运算变量取值相同时,“异或”的结果为0。 取值相异时,“异或”的结果为1
7二进制的位运算符
二进制位运算符用于直接对二进制位进行计算,一共7个。
取反是一个什么运算?
取反,是Java使用补码来表示二进制数,在补码表示中,最高位为符号位,正数的符号位为0,负数为1。
NOT,是汇编指令里逻辑运算符号:NOT表示取反的意思。
补码的规定如下:
对正数来说,最高位为0,其余各位代表数值本身(以二进制表示),如+42的补码为。
对负数而言,把该数绝对值的补码按位取反,然后对整个数加1,即得该数的补码。
如-42的补码为(按位取反+1即)。
用补码来表示数,0的补码是单一的,都为。(而在原码,反码表示中,+0和-0的表示是不单一的,可参见相应的书籍)。
而且可以用表示-1的补(这也是补码与原码和反码的区别)。
扩展资料:
运算方法:
1、正数取反:
先将初始数值转换成二进制数,再对二进制数的每一位(包括第一位的符号位)进行运算:
即将0变为1、将1变为0。得到的是最终结果的补码,要转换为最终结果的原码则需再次取补码,就能得到计算结果。
2、负数取反:
先将初始数值转换成二进制数,再取得二进制数的补码,之后对补码的每一位(包括第一位的符号位)进行运算:即将0变为1、将1变为0。
得到的是最终结果的补码(到达这一步后所得的二进制数为正数,由于正数的原码、反码、补码相同,后面的运算可以忽略。
视此步得到的为最终结果的二进制数),要转换为最终结果的原码则需再次取补码,就能得到计算结果。
常见相关指令:
AND 与运算
or 或运算
XOR 异或运算
NOT 取反
TEST 测试(两操作数作与运算,仅修改标志位,不回送结果)
SHL 逻辑左移
SAL 算术左移(=SHL)
SHR 逻辑右移( 每位右移, 低位进 CF, 高位补 0)
SAR 算术右移(每位右移, 低位进 CF, 高位不变)
ROL 循环左移
ROR 循环右移
RCL 通过进位的循环左移
RCR 通过进位的循环右移
参考资料:
网络百科-取反
网络百科-汇编指令
本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!
添加新评论