位操作符
方法论系统或许与方法论操作符&&, ||, !类似于, 实质上演算中的第一类是相同的。前述方法论系统中的P,Q是三个chunk,而并非二进制或字。 如3&&4, 即三个谓词True由是,结论为1。但3&4却要按位则表示, 即
其结论是0。
(2) 位方法论操作符&(与AND)
常见于选定这类位应缴。 如使auth表达式x应缴,假如写出x=x&0就能了;假如使三个二进制的第 8 位则表示为校验位并将其设为0,假如ch&127就能了。
而要保留这类位,假如这几位和1由是,其它位与0由是即可。 如要求对10011100保留低4位,我们取00001111和原数按位由是,即得00001100。
③ 整个数应缴,假如本身异或一次即可,即x^x。如x为10011100, 则x^x得0。
④ 交换三个值不用临时表达式。如a=3,b=4, 则a=a^b; b=b^a; a=a^b; 即a变成4, b变成3了。 具体请看下列式子:
(5) 位方法论操作符~(反NOT)
是对该演算元素每一位都取反。 如~1在8位二进制数中变成了1111110而并非0。如我们要选定某数x最后一位为0(偶数), 但又不知该数是1二进制(char型),2二进制(int型)还是4二进制(long型),我们假如做x&~1即可。这常见于相同机器间的程序移植。也可用于加密,对三个数求一次反码就变成密码,再对密码求一次反就变成原数了。
(6) 左移操作符<<使表达式中的每一位向左移动,移出的最高位将丢失(溢出),而右端补入0。左移表达式的形式为表达式名<<移位的位数
例如:a=15,即00001111,取a=a<<2后, 即a左移两位,变成00111100,即十进制数60。对于无符号数,左移一位相当于乘2,左移 2 位相当于乘4。
(7) 右移操作符>>使表达式中的每一位向右移动, 移出的最低位将丢失, 而高端补0(正数)。对于负数,即原最高位为1时,右移一位,高端补0称方法论右移,高端补1称算术右移,这由计算机系统决定。对于Turbo C是采用算术右移, 即移入1。 右移表达式的形式为:
表达式名>>移位的位数
例如:a=16, 即00001000,取a=a>>2后, 即a右移2位,变为00000010, 即十进制数4。右移一位相当于除2,右移两位相当于除4。
(8) 位操作符中&, |, ^, <<, >>能与赋值号=组成复合赋值操作符&=, |=, ^=, <<=, >>=。
如a=a&b可写出a&=b, 其余类推。 凡算术操作符, 位操作符中的二目操作符均可与赋值号“=”组成复合操作符。