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. iis7+的虚拟目录:未能加载程序集“**”。请确保在访问该页之前已经编译了此程序集

    在使用win8系统后,突然想运行iis,于是在windows组件中启用iis,并aspnet_regiis.exe -i注册iis后,于是开始发布了一个站点,一切正常 继而,在该站点下添加虚拟目录,然 ...

  2. sql2012新的系统函数&分析函数

    一 .系统函数 1.字符串类函数:不用判断类型和NULL的字符串连接CONCAT函数 SQL Server本来对字符串的连接很简单,直接使用“+”号,但是需要注意两个问题,一是必须类型都是字符串类型, ...

  3. Hadoop之HDFS(一)HDFS入门及基本Shell命令操作

    1 . HDFS 基本概念 1.1  HDFS 介绍 HDFS 是 Hadoop Distribute File System 的简称,意为:Hadoop 分布式文件系统.是 Hadoop 核心组件之 ...

  4. 50. Pow(x, n) 幂次方

    [抄题]: mplement pow(x, n), which calculates x raised to the power n (xn). Example 1: Input: 2.00000, ...

  5. Hibernate和Mybatis区别 详细 有用

    1.开发上手难度 hibernate的真正掌握(封装的功能和特性非常多)要比Mybatis来得难. 在真正产品级应用上要用Hibernate,不仅对开发人员的要求高,hibernate往往还不适合(多 ...

  6. 二项分布 , 多项分布, 以及与之对应的beta分布和狄利克雷分布

    1. 二项分布与beta分布对应 2. 多项分布与狄利克雷分布对应 3. 二项分布是什么?n次bernuli试验服从 二项分布 二项分布是N次重复bernuli试验结果的分布. bernuli实验是什 ...

  7. Ubuntu 14.04 安装配置强大的星际译王(stardict)词典

    转载http://blog.csdn.net/huyisu/article/details/53437931

  8. Part4_lesson1---Bootloader设计蓝图

    1.bootloader的作用 2.u-boot是bootloader业界的老大 u-boot分为自主模式和开发模式 3.建立U-boot工程 uboot不能在window下面进行解压,因为在wind ...

  9. [GO]append的扩容

    package main import "fmt" func main() { s := make([], ) oldcap := cap(s) ; i < ; i++{ s ...

  10. Ubuntu安装开发版pidgin支持lwqq插件

    sudo add-apt-repository ppa:lainme/pidgin-lwqq  """添加pidgin-lwqq源""" s ...