Java 位运算符总结

来源:互联网 发布:网络农场 编辑:程序博客网 时间:2024/05/16 17:21

Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。

位运算符作用在所有的位上,并且按位运算。假设a = 60,b = 13;它们的二进制格式表示将如下:

A = 0011 1100B = 0000 1101-----------------A&b = 0000 1100A | B = 0011 1101A ^ B = 0011 0001~A= 1100 0011

下表列出了位运算符的基本运算,假设整数变量A的值为60和变量B的值为13:

操作符 描述 例子 & 如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100 / 如果相对应位都是0,则结果为0,否则为1 (A / B)得到61,即 0011 1101 ^ 如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001 〜 按位补运算符翻转操作数的每一位,即0变成1,1变成0 (〜A)得到-61,即1100 0011 << 按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到240,即 1111 0000 “>>” 按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到15即 1111 “>>>” 按位右移补零操作符。左操作数的值按右操作数指定的位数右移 移动得到的空位以零填充。

实例
下面的简单示例程序演示了位运算符。复制并粘贴下面的Java程序并保存为Test.java文件,然后编译并运行这个程序:

public class Test {  public static void main(String[] args) {     int a = 60; /* 60 = 0011 1100 */      int b = 13; /* 13 = 0000 1101 */     int c = 0;     c = a & b;       /* 12 = 0000 1100 */     System.out.println("a & b = " + c );     c = a | b;       /* 61 = 0011 1101 */     System.out.println("a | b = " + c );     c = a ^ b;       /* 49 = 0011 0001 */     System.out.println("a ^ b = " + c );     c = ~a;          /*-61 = 1100 0011 */     System.out.println("~a = " + c );     c = a << 2;     /* 240 = 1111 0000 */     System.out.println("a << 2 = " + c );     c = a >> 2;     /* 15 = 1111 */     System.out.println("a >> 2  = " + c );     c = a >>> 2;     /* 15 = 0000 1111 */     System.out.println("a >>> 2 = " + c );  }} 

以上实例编译运行结果如下:

a & b = 12a | b = 61a ^ b = 49~a = -61a << 2 = 240a >> 2  = 15a >>> 2 = 15
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 潍坊市科技学院 潍坊市附属医院 潍坊市科技局 潍坊市是哪个省 潍坊市八九医院 潍坊城海专线 潍坊潮汐表 潍坊港潮汐表 潍坊港 潍坊市教育信息港网 潍坊港华燃气客服电话是多少 潍坊教育信息港网站 潍坊港集团 潍坊市教育信息港 潍坊68路公交路线 潍坊5路公交车路线 潍坊68路车全程时间表 潍城区邮编 潍城区 潍坊市潍城区邮政编码 潍坊潍城区 潍柴发动机型号参数 潘一恒 潘世亨 北京潘中恒骨科医院 潘先生在难中读后感 潘之琳个人资料 潘之琳图片 潘之琳老公 潘之琳老公的照片 潘之琳老公是谁 潘之琳照片 潘之琳个人写真 潘之琳写真 潘之琳比基尼照片 潘之琳老公个人资料 潘仁美 潘仁美怎么死的 潘仪君 潘仪君个人资料 潘任美