一.位运算

Java中有4个位运算,它们的运算规则如下:

(1)按位与 (&)  :两位全为1,结果为1,否则为0;

(2)按位或  (|)   :两位有一个为1,结果为1,否则为0;

(3)按位取反(~):0 变 1, 1变0;

(4)按位异或(^):两位,如果相同,结果为0;如果不同,结果为1;

注意:

     (1)位运算中的 符号位(最高位)也跟着变;

(2)位运算符与逻辑运算符(逻辑与&&、逻辑或||、逻辑非! )有点相似。但是,逻辑运算符只能操作boolean变量

         (也就是左右两边的值都是boolean值);

二.位运算应用

(1)  ~5 = ?

a) 5的补码为:

00000000   00000000   00000000   00000101

b) 5的按位取反(~)为:

11111111     11111111     11111111      11111010

注意:因为高位数是1(负数),所以要将该补码转换为原码;如果高位数是0(正数)的话, 就不用将补码转为原码,因为正数的原码、反码、补码都一样。

c) 将该负数的补码转为反码:

11111111    11111111     11111111      11111001

d) 将该负数的反码转为原码:

10000000  00000000   00000000    00000110

e) 将二进制原码 转换为 十进制:

10000000  00000000   00000000    00000110  =  0 * 2^0 + 1 * 2^1 + 1 * 2^2 = 0+2+4 =  -6 (最高位为1,所以为负数)

三. 移位运算:

Java中有3个移位运算符。

(1) 算术右移 (>>): 低位溢出,符号位不变,并用符号位补溢出的高位;

例如:a >> b :a是要移动的数,b是要移动的位数,下面同理;

(2) 算术左移(<< ): 符号位不变,低位补0;

(3) 逻辑右移(>>>): 低位溢出,高位补0;注意:逻辑右移(>>>)中的 符号位(最高位)也跟着变;

四. 注意点:

位运算与移位运算,都是使用的二进制的补码,进行操作的,切忌!

Java中的位运算符、移位运算的更多相关文章

  1. Java中的位运算符

    Java提供的位运算符有:左移( << ).右移( >> ) .无符号右移( >>> ) .位与( & ) .位或( | ).位非( ~ ).位异或( ...

  2. Java中的位运算符 &、|、^、~、<< 和 >>

    一.& 按位与运算符 5 & 3 = 1 5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101 3转换为二进制:0000 0000 0000 ...

  3. Java 逻辑运算符、位运算符、移位操作符 总结(Java 学习中的小记录)

    Java 逻辑运算符.位运算符.移位操作符  总结     作者:王可利(Star·星星) 逻辑运算符,表格如下: 解析逻辑运算符表: 1.与 (&) 特点:两个都为真的时候,结果为真.两个为 ...

  4. Java学习路线:Java中的位移运算符介绍

    学习java本来就是一件日积月累的事情,或许你通过自学能掌握一些皮毛技术,学到java的一些基本大面,但想要做到精通,还是需要自己技术的日积月累和工作经验的不断积累. 今天给大家分享的技术知识是:ja ...

  5. 聊一聊Java中的各种运算符

    计算机之所以叫“计算机”,其最基本用途之一就是运算,对应刚刚接触Java的小伙伴而言,熟悉并掌握Java中的各种运算符及其在表达式中的运算优先级是十分必要的. 算术运算 算术运算主要用来处理数学中的加 ...

  6. 聊一聊Java中的各种运算符(转载)

    计算机之所以叫"计算机",其最基本用途之一就是运算,对应刚刚接触Java的小伙伴而言,熟悉并掌握Java中的各种运算符及其在表达式中的运算优先级是十分必要的. 算术运算 算术运算主 ...

  7. [java基础] 002 - 位运算符的详解和妙用

    一:位运算符详解 位运算符主要用来对操作数二进制的位进行运算.按位运算表示按每个二进制位(bit)进行计算,其操作数和运算结果都是整型值. Java 语言中的位运算符分为位逻辑运算符和位移运算符两类, ...

  8. Java中常用的运算符

    运算符是一种“功能”符号,用以通知 Java 进行相关的运算,Java 语言中常用的运算符可分为如下几种: 算数运算符.赋值运算符.比较运算符.逻辑运算符.条件运算符. 一.算数运算符 Java 中常 ...

  9. Java学习笔记五:Java中常用的运算符

    Java中常用的运算符 运算符是一种“功能”符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 score 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作. Java ...

随机推荐

  1. 08.net网站开发(前端):5.jQuery

    开发网站肯定要会JS,嫌代码太难看难学那至少要学会jQuery.当然我见过有些项目纯用服务端控件也是能做出来的,但我相信,那些碰到复杂的需求的话肯定很棘手的.jQuery是对JS和DOM的封装,少量代 ...

  2. Web打印组件jatoolsPrinter(转载)

    应用web化,不论对开发商,还是对用户来说,实在是一种很经济的选择,因为基于web的应用,客户端的规则很简单,容易学习,容易维护,容易发布.但对程序员来说,因为浏览器的局限性,却要面对很多挑战.怎么样 ...

  3. eclipse修改java代码后报错: java.lang.OutOfMemoryError: PermGen space

    由于在eclipse中运行项目后,我们又重新修改了某个java类,导致tomcat会重新加载这个项目所有的class.jar,多次加载后由于分配的存储空间有限,就导致了:java.lang.OutOf ...

  4. BZOJ 1644: [Usaco2007 Oct]Obstacle Course 障碍训练课( BFS )

    BFS... 我连水题都不会写了QAQ ------------------------------------------------------------------------- #inclu ...

  5. 创建js对象和js类

    //第一种定义方式 var person=new Object(); //创建了一个对象. person.name="tom"; //使用person对象对调用name属性,它的值 ...

  6. SDWebImage 常用方法

    SDWebImage是iOS中一款处理图片的框架, 使用它提供的方法, 一句话就能让UIImageView自动去加载并显示网络图片.特别是在UITableViewCell中有UIImageView需要 ...

  7. 我的Python成长之路---第六天---Python基础(18)---2016年2月20日(晴)

    os模块 提供对操作系统进行调用的接口 >>> import os >>> os.getcwd() # 获取当前工作目录,类似linux的pwd命令 '/data/ ...

  8. shell学习之变量、判断、重复动作

    1.1 环境以及变量的定义.赋值.展开.删除 export:将一个变量导入到环境中:export PATH=$PATH:/home. readonly 讲一个变量设置为只读模式,在shell脚本中定义 ...

  9. java多线程制作计时器

    基本思路: 在类中创建thread 供按钮监听器调用. 界面设计:

  10. java面板设计

    写面板真的是写到吐血,深深感受到什么叫又臭又长,可能是自己用的太烂吧. 关于布局管理器不写一下还是不懂,另外加面板的思想跟html中div的感觉差不多. 发现的一个小彩蛋:用JScrollPane的时 ...