当前位置: 首页 > news >正文

java位运算符取反_Java的和,||和|,位运算详解

《大数据和人工智能交流》头条号向广大初学者新增C 、Java 、Python 、Scala、javascript 等目前流行的计算机、大数据编程语言,希望大家以后关注本头条号更多的内容。

java逻辑运算和位运算总结

1. &&和&有什么区别? ||与|有什么区别?

(1)&&表示短路与

(2)对于&与来说,所有条件都要判断,而如果使用短路与,如果第一个条件为false,则后面的条件将不在判断

(1)||表示短路或

(2)对于或|来说,要求说有条件都要判断,而如果使用短路或,如果第一个条件为true,怎后面的条件将不在判断

例如

"与"的功能:

【1】&的功能

public class OperateDemo10{

public static void main(String args[]){

if(10!=10&10/0==0){ //10!=10和10/0两个条件都判断了;程序报错

System.out.println("条件满足") ;

}

}

};

【2】短路与的功能

public class OperateDemo11{

public static void main(String args[]){

if(10!=10&&10/0==0){ //只要第一个条件满足,往后代码不在执行,不报错

System.out.println("条件满足") ;

}

}

};

"或"的功能:

【1】|的功能

public class OperateDemo12{

public static void main(String args[]){

if(10==10|10/0==0){ //所有条件都要判断

System.out.println("条件满足") ;

}

}

};

【2】||的功能

public class OperateDemo13{

public static void main(String args[]){

if(10==10||10/0==0){ //第一个条件满足, 将不在判断

System.out.println("条件满足") ;

}

}

};

java逻辑运算和位运算总结(二)

2.如何处理取反运算符~?

【1】对于整数来说:

public class BitOperation {

public static void main(String args[]){

int a=5;

System.out.println("~a="+(~a));

}

}

运算结果是-6

首先你要知道现在我们用的多数都是32位机,所以整形数都是4个字节

那么再看看按位取反的结果:

00000000 00000000 00000000 00000101 这是5

00000000 00000000 00000000 00000000 这是0

11111111 11111111 11111111 11111111 这是-1

11111111 11111111 11111111 11111110 这是-2

11111111 11111111 11111111 11111101 这是-3

11111111 11111111 11111111 11111100 这是-4

11111111 11111111 11111111 11111011 这是-5

11111111 11111111 11111111 11111010 这是5取反的结果-6

【2】对于负数来说

public class OperateDemo16{

public static void main(String args[]){

int x = -3 ; //-3 应该以补码的形式存在,补码 = 反码 + 1

System.out.println(~x) ;

}

};

其中第一位表示符号位

1000000 00000000 00000000 00000011 -> -3的原码

1111111 11111111 11111111 11111100 -> -3的反吗

1111111 11111111 11111111 11111101 -> -3补码

0000000 00000000 00000000 00000010 -> ~-3取反

3.如何处理左移和右移

public class OperateDemo18{

public static void main(String args[]){

int x = 3 ; // 3的二进制数据: 00000000 00000000 00000000 00000011

int y = -3 ; // -3的二进制数据: 11111111 11111111 11111111 11111101

System.out.println(x + "右移2位之后的内容:" + (x>>2)) ;

System.out.println(y + "右移2位之后的内容:" + (y>>2)) ;

}

};

关于无符号右移

public class OperateDemo19{

public static void main(String args[]){

int x = 3 ; // 3的二进制数据: 00000000 00000000 00000000 00000011

int y = -3 ; // -3的二进制数据: 11111111 11111111 11111111 11111101

System.out.println(x + "右移2位之后的内容:" + (x>>>2)) ;

System.out.println(y + "右移2位之后的内容:" + (y>>>2)) ;

}

};

00000000 00000000 00000000 0000011 ->3的原码

补2个0 移出2位

00000000 00000000 00000000 000000011 ->无符号右移2位 结果为0

11111111 11111111 11111111 111111101 ->-3的补码(-3在计算机以补码存在)

补2个0 移出2位

00111111 11111111 11111111 11111111101 ->无符号右移2位 结果为数很大

6296d4146716a72274bccc7952bc9b5f.png

《大数据和人工智能交流》的宗旨

1、将大数据和人工智能的专业数学:概率数理统计、线性代数、决策论、优化论、博弈论等数学模型变得通俗易懂。

2、将大数据和人工智能的专业涉及到的数据结构和算法:分类、聚类 、回归算法、概率等算法变得通俗易懂。

3、最新的高科技动态:数据采集方面的智能传感器技术;医疗大数据智能决策分析;物联网智慧城市等等。

根据初学者需要会有C语言、Java语言、Python语言、Scala函数式等目前主流计算机语言。

根据读者的需要有和人工智能相关的计算机科学与技术、电子技术、芯片技术等基础学科通俗易懂的文章。

相关文章:

  • 处理血压信号_打破智能可穿戴设备 “功能鸡肋”,ADI体征信号监测技术助力实现 “健康监测”...
  • e300氛围灯哪里调节_价位差不多,宝马530和奔驰E300,你选谁?
  • 代码批量加引号_字符串包含单引号和双引号写进数据库出错
  • python简单温度转换_python实现简单温度转换的方法
  • 收回dba权限_CloudQuery v1.3.0发布:DBA 的效率加速器
  • 可以新建文本的管理器_Excel结构化表与名称管理器
  • linux pid t 头文件_linux中常用的头文件
  • vue 实例化几种方式_2 Vue数据绑定、实例化多个Vue对象、基础指令
  • python如何全排列_python实现全排列
  • 框架对比_2020年前端框架性能对比和评测
  • 动态规划走楼梯_看动画轻松理解递归与动态规划
  • extjs中store获取后台数据_Extjs 后台读取数据的下拉框
  • mysql建数据库实例_MySQL数据库基础(四)——MySQL数据库创建实例
  • mysql是基于关系模型的数据库_MySQL系列:MySQL关系型数据库架构
  • mysql nocount_存储过程之SET NOCOUNT ON/OFF 含义
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【css3】浏览器内核及其兼容性
  • Cookie 在前端中的实践
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • ES6核心特性
  • ES6之路之模块详解
  • golang中接口赋值与方法集
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Java面向对象及其三大特征
  • LeetCode算法系列_0891_子序列宽度之和
  • maya建模与骨骼动画快速实现人工鱼
  • Node + FFmpeg 实现Canvas动画导出视频
  • nodejs调试方法
  • Python进阶细节
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 初识MongoDB分片
  • 码农张的Bug人生 - 初来乍到
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端性能优化——回流与重绘
  • 异步
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 阿里云服务器购买完整流程
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​水经微图Web1.5.0版即将上线
  • #、%和$符号在OGNL表达式中经常出现
  • #QT项目实战(天气预报)
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • $ git push -u origin master 推送到远程库出错
  • $.ajax中的eval及dataType
  • (arch)linux 转换文件编码格式
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (js)循环条件满足时终止循环
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (三十五)大数据实战——Superset可视化平台搭建
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • ***监测系统的构建(chkrootkit )