位运算

来源:互联网 发布:linux 启动oracle实例 编辑:程序博客网 时间:2024/06/05 18:47

一、6种基本的位操作

&               按位与运算|               按位或运算^               按位异或运算<<              按位左移运算>>              按位右移运算~               按位补运算

1、按位与:测试两个二进制数,如果两个数对应的位值均为1,则该位值返回1,如果不同时为1,则该位值返回0。

    01001011  & 00010101 -------------    00000001

2、按位或:测试两个二进制数,如果两个数对应的位值至少有一个为1,则该位值返回1,仅当该位值同时为0时,则该位值返回0。

    01001011  | 00010101 -------------    01011111

3、按位异或:测试两个二进制数,如果两个数对应的位值不相同,则该位值返回1,如果两个数对应的位值相同,则该位值返回0。

    01001011  ^ 00010101 -------------    01011110

4、按位左移:测试一个二进制数,将二进制中的所有位向左移动,并用0填充空出的位。

    01001011<< 2 -------------    00101100

5、按位右移:测试一个二进制数,将二进制中的所有位向右移动,(并用0填充空出的位??)

    01001011<< 2 -------------    ??010010

注意:在按位右移中,填充位是符号“?”的使用。左移操作中用0填充空出的位,右移操作仅当操作的二进制数是一个无符号数时才用0填充。如果操作数时有符号数,那么右移操作将用符号位或者0(根据具体要求)填充空出的位。一般情况下,最安全的做法是不要右移有符号的操作数。

6、按位补:测试一个二进制数,将二进制是中的所有位取反。

    01001011  ~  ------------    10110100

二、基本的位运算的应用

原创粉丝点击