位操作

来源:互联网 发布:冬庆线切割怎么编程 编辑:程序博客网 时间:2024/05/21 13:53

按位与运算符"&"
规则:只有对应的两个二进位均为1时,结果位才为1 ,否则为0。
应用:
    a) 清零特定位 (mask中特定位置0,其它位为1,s=s&mask)
        例:把a 的高八位清 0,保留低八位,可作 a&255 运算 ( 255 的二进制数为0000000011111111)。
    b) 取某数中指定位 (mask中特定位置1,其它位为0,s=s&mask)
按位或运算符"|"
规则:只要对应的二个二进位有一个为1时,结果位就为1。
应用:
    a) 将源操作数某些位置1,其它位不变 (mask中特定位置1,其它位为0 s=s|mask)
        例:把a的高八位置为1,低八位不变,可作a&65280运算(65280的二进制为1111111100000000)

按位异或运算符"^"
规则:当两对应的二进位相异时,结果为1。
应用:
    a) 使特定位的值取反 (mask中特定位置1,其它位为0 s=s^mask)
        
    b) 不引入第三变量,交换两个变量的值 (设 a=a1,b=b1)


求反运算符"~"
规则:对参与运算的数的各二进位按位求反。


左移运算符"<<"
规则:把“<< ”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数, 高位丢弃,低位补0。 其值相当于乘2。


右移运算符">>"
规则:把“>> ”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。其值相当于除2。