位运算起源于c语言的低级操作,所谓的低级操作,是因为位运算的操作对象是二进制位
但是这种低级操作对计算机而言是非常简单直接,友好高效的
在简单的低成本处理器上,通常位运算比除法快得多,比乘法快几倍,有时比加法快得多
运算符 | 说明 | 举例 |
---|---|---|
& | 与 | 操作数相同位都为1,那么结果为1 |
l | 或 | 操作数相同位有一位为1,那么结果为1 |
^ | 异或 | 操作数相同位不相同,结果为1 |
<< | 左移 | 各二进制位全部左移N位,高位丢弃,低位补0 |
>> | 右移 | 各二进制位全部右移N位,若值为正,则在高位插入0,若值为负,则在高位插入1 |
>>> | 无符号右移 | 忽略符号位,空位都以0补齐,正数做>>>运算的时候和>>是一样的,区别在于负数运算 |