java的位运算符主要针对二进制数的位进行逻辑运算,主要包括以下几种的位运算符

  1、与运算符(&)

    与运算符的使用规律是两个操作数中位为1的时候结果为1,否则都是0,例如  3&5=1

    3对应的二进制数是0011       5对应的二进制数是0101,所以根据与运算的规则,3&5得出的结果是0001,转换成十进制就是1

  2、或运算符(|)

    或运算符的的使用规则是两个位中只要任意一个里面有一,那么结果为1,也就是说只有当两个位都为0的时候结果才为0,例如 3|5=7

    根据或运算符的规则,3|5的记过是0111,转换成十进制就是 7

  3、非运算符(~)

    非运算符是针对一个数进行操作的,它的使用规则是将一个数的二进制数全部取反,0变成1,1变成0,例如 ~5=-6

    5对应二进制数是0101,因为计算机内部表示数的字节单位是定长的,如8、16、32 位,不够的0补位。所以5对应的二进制数应该是 0000 0101,

    ~5 = 1111 1010,最高是符号位,所以1111 1010代表的是个负数,先将1111 1010 减1 变成1111 1001 ,再取反变成 0000 0110=6,所以~5=-6

  4、异或运算符(^)

    异或运算符的使用规则是两个操作数的位中,相同为0,不同为1,所以3(0010)^5(0101)=7(0111)

  5、左移运算符(<<)

    左移运算符是针对一个数进行操作的,运算规则是将一个数的二进制数整体向左移,末尾用0补上,所以     5 << 1 = 10    5 << 2 = 20

    5对应的二进制是0101,左移一位就变成了 1010=10 左移两位就变成了  0001 0100 = 20,所以左移多少位就是把原来的数乘以2的多少次方

  6、右移运算符(>>)

    右运算符与左运算符相反,是将一个数的二进制数整体右移,例如   5>>1 = 2,5对应的二进制数是0101,右移一位就变成了0010=2,当数的本身小于2的n次方的时候,右移n位结果都是0,例如5<2*2*2,所以5 >>3 = 0

  7、又移运算符(>>>)

    >>>运算符和>>的使用规则基本一样,但是>>>运算符左后最高位都是用0标识

java学习笔记之位运算符的更多相关文章

  1. Java学习笔记——关于位运算符的问题

    我就之直接贴图了!不想排版了! 有什么问题,欢迎大家指出,帮助我提高,谢谢!

  2. Java学习笔记三:运算符

    1.算术运算符: GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/OperPrac01.java +  -  *  /  ...

  3. Java学习笔记四——运算符

    算术运算符 加减乘除(+.-.*./)就不说了. 求余运算符% 描述:第一个操作数除以第二个操作数,得到一个整除的结果后剩下的值就是余数 注意:求余预算的结果不一定总是整数,当操作数是浮点数时,结果可 ...

  4. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  5. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  6. Java学习笔记心得——初识Java

    初识Java 拿到这本厚厚的<Java学习笔记>,翻开目录:Java平台概论.从JDK到TDE.认识对象.封装.继承与多态...看着这些似懂非懂的术语名词,心里怀着些好奇与担忧,就这样我开 ...

  7. 20145231第二周Java学习笔记

    20145231 <Java程序设计>第2周学习总结 教材学习内容总结 本周的学习采用的依然是先看课本,再看视频,然后实践敲代码,最后根据学习笔记总结完成博客. 第三章:基础语法 知识点比 ...

  8. Java学习笔记之---基础语法

    Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...

  9. Go语言学习笔记四: 运算符

    Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧. 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有. 算术运算 ...

随机推荐

  1. 【树莓派】开机自启动脚本方法之一(.Desktop文件)

    转载处: 又一个让树莓派开机运行Python脚本的方法 Linux 创建启动器(.Desktop文件) 首先,树莓派使用的是官方推荐的镜像:RASPBIAN: 在树莓派上常常会需要开机自启动pytho ...

  2. 通过键盘上下键 JS事件,控制候选词的选择项

    效果图 JS代码 //上下键 选择事件 searchBackgroud 为样式,只做标记,无实质样式,因为和其他样式不兼容,只能添加CSS $(document).keydown(function ( ...

  3. Linux下zip格式文件的解压缩和压缩

    Linux下zip格式文件的解压缩和压缩 Linux下的软件包很多都是压缩包,软件的安装就是解压缩对应的压缩包.所以,就需要熟练使用常用的压缩命令和解压缩命令.最常用的压缩格式有.tar.gz/tgz ...

  4. linux下配置tomcat开机自启动

    Linux下配置tomcat开机自启动   1.写一个tomcat脚本,内容如下,设置其权限为755,放在/etc/init.d/目录下 #!/bin/bash## /etc/init.d/tomca ...

  5. C# XML 操作

    1 xml文件格式 <?xml version="1.0" encoding="utf-8"?> <userInfo> <user ...

  6. 70个HR面试题

    请你自我介绍一下你自己,      回答提示:一般人回答这个问题过于平常,只说姓名.年龄.爱好.工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能.最深入研究的知 ...

  7. Luogu 4254 [JSOI2008]Blue Mary开公司

    BZOJ 1568 学习了一波李超线段树. 大佬blog 这个东西专门用来维护插入一条线段和区间/单点的最大/最小值. 插入的时候讨论: 1.如果当前结点上没有线段,那么直接插入. 2.如果当前结点上 ...

  8. 使用 Sentry集中处理错误

    Sentry的简介 Sentry 是一个实时的事件日志和聚合平台,基于 Django 构建. Sentry 可以帮助你将程序的所有 exception 自动记录下来,处理 exception 是每个程 ...

  9. Django框架 之 admin管理工具(组件使用)

    Django框架 之 admin管理工具(组件使用) 浏览目录 激活管理工具 使用管理工具 admin的定制 admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理 ...

  10. 第九课,ROS仿真1

    ---恢复内容开始--- 1.stage simulator 它是一个轻量级的仿真软件,它的包名称是stage_ros,可以进入看看,其包含地图在子目录world下, 启动之: rosrun stag ...