写在前面:大大小小的位运算和逻辑运算,自己见的倒是挺多的,也基本没有错误。但是上次在面试的时候,面试官问我请你说说Java的位运算有哪些,我脑子一下就乱了,你要是考我答案我倒是知道,但是让我自己全部说出来,就有难度了。于是,借此机会做一个总结。。。。。。

然后再次反思了自己所学的知识,认为一定要有相应的体系结构,不然知识就是乱的(感觉自己学了很多,但真的让你说的时候,又没有对应的主线将知识串起来),而且极易忘记。

文章目录

  • 1、6个基础位运算符
  • 2、4个逻辑运算符

1、6个基础位运算符

基础位运算,针对二进制数字的计算。在很多代码的底层都是利用位运算来提升程序执行的效率。当然我们在做一些算法题的时候也可以这么做。

分享一个自己曾经记录的一个用于判断单双数的代码

//如果num是单数,那么其对应的二进制末尾数字一定是1
//000...101 -- 5
//000...001 -- 1
//000...001 -- 1 结果等于1,表示num为单数//000...110 -- 6
//000...001 -- 1
//000...000 -- 0 结果等于0,表示num为双数
if(num & 1 ==0) {//双数后的方法体
}

位运算针对的是数字(二进制)计算

符号 描述 运算规则
and & 两个位都为1时,结果才为1
or | 两个位都为0时,结果才为0
xor ^ 异或 两个位相同则为0,相异为1
not ~ 取反 0变1,1变0
shl << 左移 各二进位全部左移若干位,高位丢弃,低位补0
shr >> 右移 各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)

2、4个逻辑运算符

逻辑运算针对的是boolean值的运算

逻辑运算又称布尔运算,它的结果应该是一个真假值,也就是true还是false。

1)&&:短路与运算。同为真时才为真。如果遇到第一个为false,后面的就不再运算,直接false

4>1&&3>0 -> true&&true -> true
1>4&&7>2 -> false&&... -> false

2)||:短路或运算。同为假时才为假,也就是说有一个为真即为真。如果遇到第一个是true,后面的也不再计算,直接true

2>3||3>2 -> false&&true -> true
5>3||2>4 -> true&&... -> true

3)!:非运算。! true=false,! false=true。只能对布尔值进行操作

!true==false -> false==false -> true
!true==true -> false==true -> false

4)^:异或运算。相同的为false,不同的为true该符号与位运算的异或相同,我们需要区别它们在不同的位置上的具体含义

true^true -> false
false^false -> falsetrue^false -> true
false^true -> true

6个基础位运算符和4个逻辑运算符相关推荐

  1. 在学习Python基础中需要知道的知识点:运算符大全,收藏,以后方面查询(算术运算符、赋值运算符、比较运算符、位运算符、逻辑运算符、成员运算符、身份运算符、运算符优先级))

    一.算术运算符 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘或是返回一个被 ...

  2. java if赋值语句_Java基础第3天+运算符(算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三元运算符)、Scanner键盘录入、if语句...

    1:运算符(掌握) (1)算术运算符 A:+,-,*,/,%,++,-- B:+的用法 a:加法 b:正号 c:字符串连接符 C:/和%的区别 数据做除法操作的时候,/取得是商,%取得是余数 D:++ ...

  3. c语言提供了6个位运算,C语言基础丨运算符之位运算符(六)

    对于更多紧凑的数据,C 程序能够用独立的位或多个组合在一块儿的位来存储信息.文件访问许可就是一个常见的应用案例.位运算符容许对一个字节或更大的数据单位中独立的位作处理:能够清除.设定,或者倒置任何位或 ...

  4. javascript进制转换_「js基础」JavaScript逻辑和位运算符归纳

    上一篇文章呢,我们讲述了JavaScript运算符中的关系运算符和逻辑运算符,那么紧接上一篇的文章我们今天来说说逻辑运算符. 引言 逻辑运算符不是很难,也不是很多,我们只要记住三个就可以啦!分别是: ...

  5. Java基础02 位运算符<<、>>

    题:如何快速计算2的3次方?(利用位运算符) 答:和二进制打交道,效率高 public class data {public static void main(String[] args) {Syst ...

  6. Python新手学习基础之运算符——位运算

    位运算符 位运算实际上是把数字看作二进制来进行计算,它的运算法则如下: 结合实例,来看下位运算是如何进行的吧: 位运算在实际应用中用途很广泛,比如我们经常听到的子网掩码,它其实就是和IP地址做了按位与 ...

  7. 32 位的有符号整数_「js基础」JavaScript逻辑和位运算符归纳

    上一篇文章呢,我们讲述了JavaScript运算符中的关系运算符和逻辑运算符,那么紧接上一篇的文章我们今天来说说逻辑运算符. 引言 逻辑运算符不是很难,也不是很多,我们只要记住三个就可以啦!分别是: ...

  8. 位运算符Java与详解_java位运算符详解

    java位运算符详讲 一.位运算符分类    java中位运算符主要有:按位与&.按位或|.按位非~.按位异或^. 在使用时,需要将运算数都转换为二进制再进行运算,若为负数则使用补码表示.二. ...

  9. java位运算符取反_java运算符

    Java 语言支持如下运算符: 算术运算符: +,-,*,/,%,++,-- 赋值运算符 = 关系运算符: >,<,>=,<=,==,!=, instanceof 逻辑运算符: ...

  10. python按位定义数据_《Python3智能数据分析快速入门》—2.2.5 按位运算符

    2.2.5 按位运算符 十进制数被人们广泛使用,但对于计算机而言,二进制数反而是更重要的,计算机的一切计算都建立在二进制数计算的基础上.按位运算是一种将十进制数转为二进制数再进行运算的过程.Pytho ...

最新文章

  1. Android -- TouchEvent的分发和截获方式
  2. Java实现算法导论中最长公共子序列(LCS)动态规划法
  3. Java的日期API真烂
  4. 第四范式入选Forrester中国机器学习Now Tech™,成唯一AutoML专注类大型厂商
  5. 导出Excel神器最终版
  6. hexo 环境变量_小白使用 Github + Hexo 从 0 搭建一个博客
  7. 质量故事(5)---猴子、香蕉与培训
  8. python加密文件_用 Python 加密文件
  9. 设置共享文件夹,samba和chmod到底谁的权限大
  10. javascript Event loop
  11. 2020 年开源项目
  12. element-ui上传图片的使用upload
  13. 02-监督学习应用.梯度下降
  14. 【开发工具】【i2c-tools】I2C总线调试工具(i2c-tools)的安装与使用
  15. java saas 开源框架_(转载)适合SaaS的几种架构比较
  16. mtk添加更换华大北斗gps驱动
  17. 油藏弹性存储量计算公式_低渗透油藏压裂井弹性产能和采收率计算方法
  18. 计算机网络和internet选项,大师为你详解win10系统设置Internet选项的处理
  19. HE4484E泛海微5V USB 输入双节锂电池串联应用升压充电IC管理芯片
  20. vue提示Named Route ‘News‘ has a default child route. When navigating to this named route...问题

热门文章

  1. 实时查询(otoci)
  2. java基础-(二)-第一个java程序
  3. python类方法在类外定义_第7.15节 Python中classmethod定义的类方法详解
  4. html行为样式动作是啥,什么是结构、样式、行为分离?
  5. cefsharp.core.dll找不到指定模块_DeepFaceLab错误:DLL Load failed 找不到指定模块!
  6. c语言输入身高计算标准体重_体质测试 | 身高 / 体重测试评分标准及方法
  7. win10系统文件拖拽卡顿_IT技巧分享16:如何让win10摆脱卡顿
  8. python大作业报告(爬虫 分析 可视化)_python第四次周末大作业
  9. element布局容器大小_Element-UI 技术揭秘(4)— Container 布局容器组件的设计与实现。...
  10. android 更换系统壁纸,Android使用线程更换壁纸