栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

位运算(java)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

位运算(java)

位运算

位运算在我们一般编写程序时, 不是特别常见,但是巧妙的使用位运算可以大量减少运行开销,优化算法 , 如下 :

我们先看 << >> >>>这三个使用方法

// << >> 为有符号的移动,最高位1
int a = 1 << 4;   // 1 二进制 0001 -- 左移4位 1000
System.out.println("a:"+a);   //十进制为16

int b = -16 >> 4;   // a 二进制 1000 -- 右移4为 0001
System.out.println("b:"+b);   //十进制为1

//  >>> 为无符号右移,空缺位只用0 补
int c = 4 >>> 1;   // 4   0000 0100
int d = -4 >>> 1;  // -4  1111 1100
System.out.println("c:"+c);
System.out.println("d:"+d);

结果 :

d 的最高位因为是1 ,移位后补0 ,所以超出了 int 的最大值

接着是这四个 :  &  |  ^  ~ , 例 :如下

int a = 4,b = 6;  // a: 0000 0100  b: 0000 0110
//4&6 -- 0000 0100 -- 十进制:4
System.out.println(a & b);
//4|6 -- 0000 0110 -- 十进制:6
System.out.println(a | b);
//4^6 -- 0000 0010 -- 十进制:2
System.out.println(a ^ b);
//~4  -- 1111 1011 -- 十进制:-5
//~6  -- 1111 1001 -- 十进制:-7
System.out.println(~a);
System.out.println(~b);

结果 : 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/755524.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号