全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解Java的位操作符

Java的位操作符用来操作整数基本数据类型中的单个“比特”(bit),即代进制位。而我们知道比特就是0和1,那么,位操作就是对这些数据进行基本的操作。如果基本类型是char、byte或者short类型的数值进行移位处理,那么会转化成int类型,再进行移位的处理

Java的按位操作符

按位操作符会对两个参数对应的位执行布尔代数运算,并最终生成一个结果。这个操作符有与(&)、非(~)、或(|)、异或(^)。我们知道单位“比特”(bit),即代进制位,都是0和1,异或(^)可能比较复杂点,两个操作数的位中,相同则结果为0,不同则结果为1。那么最基本的逻辑就像下面这个样子。

1&1 → 1
1&0 → 0
~1 → 0
~0 → 1
1|1 → 1
1|0 → 1
1^0 → 1  (1为01,0为00,那么结果就是01,还是1)
1^1 → 0

Java的移位操作符

Java的移位操作符无非就是对二进制进行位移。

进行<<就是左移,也就是所有所有二进制往左边移动一个位,0010 0000 << 1 等于0100 0000

进行>>右移,也就是所有所有二进制往右边移动一个位,0010 0000 >> 1 等于0001 0000 。

可以试试下面的例子,整数型的也是变成二进制来计算:

class Test{
   public static void main(String[] args){
   int numInt1 = 3;
   int numInt2 = -3;
   System.out.println(numInt1<<1);
   System.out.println(numInt1>>1);
System.out.println(numInt2<<1);
 System.out.println(numInt2>>1);

  } 
 }
/* 输出的结果如下(www.breakyizhan.com)
6   ---> 0000 0011<<1 , 变为0000 0110
1   ---> 0000 0011>>1 , 变为0000 0001...1后面的1被顶出去了,所以结果为1
-6   --> 1111 1101<<1 , 变为1111 1010 取反+1= 0000 0110  -6
-2   --> 1111 1101>>1 , 变为1111 1110 取反+1= 0000 0010  -2 
*/

Java的三元操作符if-else

三元操作符也叫做条件操作符,用来做简单的逻辑判断是最好不过的,因为其简洁高效,当然,也可以用if-else代替三元操作符,但是,三元操作符最终也会生成一个值。三元操作符表达式如下:

boolean-exp? exp0: exp1

如果boolean-exp(布尔表达式)的结果为true,就计算exp0这个表达式的值不计算exp1的值,如果为false,就计算后面的表达式exp1这个表达式的值不计算前面exp0的值,然后返回计算结果的值。可以来看一下详细的例子:

public class sanyuantest{
  static int changeNo(int 1){
  return i < 5 ? i*100:i*10;
  }
 public static void main(String[] args){
 println(changeNo(3));
 println(changeNo(6));
 }
}
/*输出的结果如下(www.breakyizhan.com)
300
60
*/

上面这段代码也可以用if-else来实现,当然,有部分人认为if-else可以让代码看起来逻辑更加清晰。但是用三元表达式显得代码更加简洁。

总结

以上所述是小编给大家介绍的Java的位操作符,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# java  # 位操作符  # Android RxJava创建操作符Timer的方法  # Android RxJava创建操作符Interval  # 浅谈Java操作符与其优先级  # Rxjava功能操作符的使用方法详解  # 简述Java编程之关系操作符  # 详解Java的按位操作符  # Java的RxJava库操作符的用法及实例讲解  # Java关系操作符简写介绍  # java笔记学习之操作符  # 可以用  # 布尔  # 小编  # 都是  # 也会  # 就像  # 在此  # 这段  # 给大家  # 会对  # 为其  # 来实现  # 所述  # 给我留言  # 感谢大家  # 转化成  # 往右  # 往左  # 疑问请  # 有任何 


相关文章: 如何在阿里云购买域名并搭建网站?  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  高端云建站费用究竟需要多少预算?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  高防服务器租用指南:配置选择与快速部署攻略  电脑免费海报制作网站推荐,招聘海报哪个网站多?  建站之星导航如何优化提升用户体验?  如何快速重置建站主机并恢复默认配置?  网站制作网站,深圳做网站哪家比较好?  想学网站制作怎么学,建立一个网站要花费多少?  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何自定义建站之星网站的导航菜单样式?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  如何用好域名打造高点击率的自主建站?  建站之星在线版空间:自助建站+智能模板一键生成方案  javascript基本数据类型及类型检测常用方法小结  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  如何快速完成中国万网建站详细流程?  网站制作难吗安全吗,做一个网站需要多久时间?  建站之星如何修改网站生成路径?  制作公司内部网站有哪些,内网如何建网站?  建站主机选哪家性价比最高?  如何在新浪SAE免费搭建个人博客?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  简历在线制作网站免费版,如何创建个人简历?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  高防服务器:AI智能防御DDoS攻击与数据安全保障  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  如何快速查询网址的建站时间与历史轨迹?  ui设计制作网站有哪些,手机UI设计网址吗?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  制作旅游网站html,怎样注册旅游网站?  网站制作话术技巧,网站推广做的好怎么话术?  建站主机如何选?高性价比方案全解析  建站之星备案流程有哪些注意事项?  建站之星代理如何优化在线客服效率?  PHP 500报错的快速解决方法  如何挑选最适合建站的高性能VPS主机?  宝塔新建站点报错如何解决?  成都网站制作报价公司,成都工业用气开户费用?  香港服务器选型指南:免备案配置与高效建站方案解析  香港服务器如何优化才能显著提升网站加载速度?  如何在云指建站中生成FTP站点? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。