算术运算符
开始下回分解

示范如下:

 int a = 10;int b = 20;System.out.println("a == b = " + (a == b) );System.out.println("a != b = " + (a != b) );System.out.println("a > b = " + (a > b) );System.out.println("a < b = " + (a < b) );System.out.println("b >= a = " + (b >= a) );System.out.println("b <= a = " + (b <= a) );

结果如下:

a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false

关系运算符
无法复制加载中的内容
示范如下:

int al = 10;
int bl = 20;
// == 两个变量相等 值为真
boolean cl = al==bl; // false
// != 两个变量不相等 值为真,否则为假
boolean c2 = al!=bl; // true
// 左边的变量是否大于右边的变量,大于值为真,否则为假
boolean c3 = al>bl; // false
// 左边的变量是否小于右边的变量,小于值为真,否则为假
boolean c4 = al<bl; // true
// 左边的变量是否大于等于右边的变量,大于等于值为真,否则为假
boolean c5 = al>=bl; // true
// 左边的变量是否小于等于右边的变量,小于等于值为真,否则为假
boolean c6 = al<=bl; // true

System.out.println(cl+"-"+c2); //false - true
System.out.println(c3+"-"+c4);
System.out.println(c5+"-"+c6);

位运算
无法复制加载中的内容
位运算这里稍微复杂一些,涉及到进制转换
原码、反码、补码
网上对原码、反码、补码的解释过于复杂,这里引用韩老师精简的几句话(这几点一定要背的滚瓜烂熟-基本功)
对于有符号的而言

  1. 二进制的最高位是符号位:0表示正数,1表示负数(口诀 0->0 , 1->-1)
  2. 正数的原码、反码、补码都一样(三码合一)
  3. 负数的反码 = 它的原码符号位不变,其他位取反(0->1 ,1->0)
  4. 负数的补码 = 它的反码 + 1,负数的反码 = 负数的补码 - 1
  5. 0的反码、补码都是0
  6. java没有无符号数,换文言之,java中的数都是有符号的
  7. 在计算机运算的时候,都是以补码的方式来运算的
  8. 当我们看运算结果的时候,要看它的原码(重点)
    // 位运算 & | ^ ~
    // 进制之间的转化
    int x = 10;// 00001010
    int y = 8;// 00001000
    int xy = x&y;

过程如下:
无法复制加载中的内容
具体案例
案例一:c = x&y c的结果? (c = 100 & 50)
先试着自己推算出结果在查看具体的过程

int x = 100;
int y = 50;
/***  1. c = x&y  c的结果? (c = 100 & 50)*推导过程* 1. 得到 它的补码 => (要得到补码就要现有原码)*    100的原码 00000000 00000000 01100100 (正数三码合一)*    100的补码 00000000 00000000 01100100* 2. 50的原码  00000000 00000000 00110010 (正数三码合一)*    50的补码  00000000 00000000 00110010* 3. 按位 &*    00000000 00000000 01100100*    00000000 00000000 00110010*    00000000 00000000 00100000 & 运算后的补码*    运算后的原码是 00000000 00000000 00100000 (正数三码合一)*    结果是 32*/
int c = x&y;
System.out.println("1. c = x&y 中 c 的结果是:"+c); //32// >> 右移 将二进制位右移指定位数int move = 20 ;int ret = move >> 2;System.out.println(ret);//00000000 00000000 00010100 //20的二进制//00000000 00000000 0000 1010 // 向右引动一位//00000000 00000000 0000 0101 // 向右引动二位案例二:2. d = c|y  d的结果? (c = 32 | y = 50)/*** 2. d = c|y  d的结果? (c = 32 | y = 50)* 1. 得到 它的补码 => (要得到补码就先要有原码)*    32的原码 00000000 00000000 00100000 (正数三码合一)*    32的补码 00000000 00000000 00100000* 2. 50的原码  00000000 00000000 00110010 (正数三码合一)*    50的补码  00000000 00000000 00110010* 3. 位运算 |*      00000000 00000000 00100000*      00000000 00000000 00110010*      00000000 00000000 00110010 | 运算后的补码*      运算后的原码是 00000000 00000000 00110010 (正数三码合一)*      结果是 50*/
int d = c|y;
System.out.println("2. d = c|y 中 d 的结果是:"+d);//50

案例三:d = c^d d 的结果? (c=32 ^ d=50)

   /*** 3. d = c^d  d 的结果? (c=32 ^ d=50)* 1.得到 它的补码 => (要得到补码就先要有原码)*    32的原码 00000000 00000000 00100000 (正数三码合一)*    32的补码 00000000 00000000 00100000* 2. 50的原码  00000000 00000000 00110010 (正数三码合一)*    50的补码  00000000 00000000 00110010* 3. 位运算 ^*      00000000 00000000 00100000*      00000000 00000000 00110010*      00000000 00000000 00010010 ^ 运算后的补码*      运算后的原码是 00000000 00000000 00010010 (正数三码合一)*      结果是 18*/
//        int c = 32;
//        int d = 50;
//        int g = c^d;
//        System.out.println("3. d = c^d 中 d的结果是 "+g);//18

案例四:4. d = ~c d的结果? (c ~ 32)

     /***  4. d = ~c   d的结果? (c ~ 32)* 1.得到 它的补码 => (要得到补码就先要有原码)*    32的原码 00000000 00000000 00100000 (正数三码合一)*    32的补码 00000000 00000000 00100000** 2. 按位 ~ 操作*      00000000 00000000 00100000*      11111111 11111111 11011111 ~ 运算后的补码 (由于是负数,需要算出原码)* 3. 运算后的反码 11111111 11111111 1101 1110 (负数反码 = 负数补码 - 1)* 4. 运算后的原码 10000000 00000000 00100001*  11100010*结果是 -33*/
//        int c = 32;
//        int d = ~c;
//        System.out.println("4. d = ~c  中 d 的结果?"+ d );

案例五:5. cc = ((x&y) & (x|y)) cc的结果? (cc = ((100&50) & (100|50)))
此案例稍微复杂一些,没有什么难度,重点是细心,一个一个算出结果就好(粗中有细)
提示:主要是分成三部分运算

   /*** 5. cc = ((x&y) & (x|y)) cc的结果? (cc = ((100&50) & (100|50)))* 一、 得到 100 & 50* 1. 得到 它的补码 => (要的到补码就要有原码)*    100的原码 00000000 00000000 01100100 (正数三码合一)*    100的补码 00000000 00000000 01100100* 2. 50的原码  00000000 00000000 00110010 (正数三码合一)*    50的补码  00000000 00000000 00110010* 3. 安位 & 操作*      00000000 00000000 01100100*      00000000 00000000 00110010*      00000000 00000000 00100000 & 运算后的补码*  4.运算后的原码是  00000000 00000000 00100000 (正数三码合一)*  结果是 32**  二、 得到 100 | 50* 1. 得到 它的补码 => (要的到补码就要有原码)*    100的原码 00000000 00000000 01100100 (正数三码合一)*    100的补码 00000000 00000000 01100100* 2. 50的原码  00000000 00000000 00110010 (正数三码合一)*    50的补码  00000000 00000000 00110010* 3. 安位 | 操作*      00000000 00000000 01100100*      00000000 00000000 00110010*      00000000 00000000 01110110 | 运算后的补码* 4.运算后的原码是  00000000 00000000 01110110* 结果是 118** 三、得到 32 & 118* 1. 得到 它的补码 => (要的到补码就要有原码)*    32的原码 00000000 00000000 00100000*    32的补码 00000000 00000000 00100000 (正数三码合一)* 2. 118的原码 00000000 00000000 01110110*    118的补码 00000000 00000000 01110110* 3. 安位 & 操作*      00000000 00000000 00100000*      00000000 00000000 01110110*      00000000 00000000 00100000 & 运算后的补码*  4.运算后的原码是  00000000 00000000 00100000*  结果是 32*/
//        int cc = ((x&y) & (x|y));
//        System.out.println("5.cc = ((x&y) & (x|y))的结果是:"+cc);

案例六:

//推导
// ~-2
// 1. 先得到 -2的原码 10000000 00000000 00000000 00000010
// 2. 2的反码 11111111 11111111 11111111 11111101
// 3. 2的补码 11111111 11111111 11111111 11111110
//    取反操作 ~ 00000000 00000000 00000000 00000001
// 4. 运算后的原码 就是 00000000 00000000 00000000 00000001
// 结果是 1
//

赋值运算符
无法复制加载中的内容

int abc = 100%3;
int abc1 = 0;
abc1 += 10; // abc1+10
abc1 -= 20;// abc1-20
abc1 /= 5;// abc1/5
abc1 %=1;// abc1%1
abc1 <<=1;// abc1<<1
abc1 >>=1;// abc1>>1

三元运算符
int ca = abc1 >10 ? 1 : 2;

相当于if-else ,如果为真执行冒号左边这一个,为假则执行冒号右边

判断 instanceof 对象 instanceof 类

Object v1 = new Var();
if (v1 instanceof Var){System.out.println("yes");
}else {System.out.println("no");
}

java运算符优先级
无法复制加载中的内容
案例一:

        int a = 2;int b = 2;int c = a * ++b - a-- << (b = a * 2);//6
//        这里是两个表达式 不是一个

案例二:

int a = 2;
int b = 2;
int c = a * ++b - a-- << (b = a * 2); //16
//这里是两个表达式,后面括号不影响后面的
System.out.println(c);
// 2 * 3 = 6 - 1 -> 5
// 5<<2

今天学习结束啦✿✿ヽ(°▽°)ノ✿
有什么问题欢迎大家提出来,一起进步

世界灿烂盛大,欢迎回家 —— 《全球高考》

3-「季淳卿」 运算符+原码、反码、补码相关推荐

  1. 2 -「季淳卿」 Redis 字符串+哈希

    这里写目录标题 String(字符串) Hash(哈希) 1 -「季淳卿」 Redis基本介绍和String练习 开始下回分解 String(字符串) 代码如下: #-- 1 strlen key 查 ...

  2. 「季淳卿」零基础学习 MyBatis-Plus-springBoot(笔记总结)

    hello,大家好.这里是季淳卿,━(`∀´)ノ亻!,MyBatis-Plus-springBoot 零基础学习笔记总结 文末有代码和.md文件可以下载(小伙伴们可以自取) MyBatis-Plus- ...

  3. 「季淳卿」MyBatis学习总结

    hello,大家好.这里是季淳卿,━(`∀´)ノ亻!,MyBatis 学习笔记总结 MyBatis

  4. day017:Java进制转换、原码反码补码、位运算、位移运算符

    一.进制介绍: 1.进制:指进位制,表示某一位置上的数,运算时是逢X进一. 十进制就是逢十进一,二进制就是逢二进一,八进制就是逢八进一. 2.Java中默认的数值都是十进制,如果要输入其他进制,在数值 ...

  5. c语言原码 补码 反码,C语言 原码--反码--补码

    //原码,反码,补码 #include #include //数值的表示方法--原码.反码和补码 //原码:最高位为符号位,其余各位为数值本身的绝对值 //反码: //正数:反码与原码相同 //负数: ...

  6. 二进制八进制十进制十六进制及原码反码补码

    1.进制的介绍 定义:进位制,人们规定的一种进位方式:表示某一位置上的数,运算时是逢X进一位. 十进制是逢十进一:二进制是逢二进一,八进制是逢八进一: 常见进制:二进制,八进制,十进制,十六进制: 学 ...

  7. 原码 反码 补码的相互转换

    原码 反码 补码的相互转换 原码 反码 补码的转换 还是比较 简单基础的问题.之前学习java的时候就学过,后来忘记了,忘记了!!!,后来学了位移运算符,左移 右移 无符号右移 之后就由有点儿懵了. ...

  8. 原码 反码 补码及应用

    原码 反码 补码及应用 原码 什么是原码? 原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负. 56 ==> 0 0111000 ​ 符号位 数据 最大值:01111111 == ...

  9. 原码, 反码, 补码 详解(转载)

    原码, 反码, 补码 详解(转载) 繁星*墨菲 于 2020-05-23 10:22:53 发布1015 收藏 75 版权 转载地址:原码, 反码, 补码 详解 - ziqiu.zhang - 博客园 ...

最新文章

  1. OpenGL在图形管道中调用了什么用户模式图形驱动程序(UMD)?
  2. CloudStack各版本新特性
  3. Instagram为何如此受欢迎?
  4. 调用startActivityForResult后,onActivityResult无响应的题目
  5. Storm的ack机制在项目应用中的坑
  6. php 数组作用域,如何在php中访问私有作用域命名空间数组数据?
  7. mysql 水平分表
  8. java进出口食品安全信息管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  9. 优酷.kux文件折腾记
  10. Linux服务器 通过ftp命令下载或上传文件
  11. Win10 如何在系统内用cmd命令查看系统详细信息
  12. 基础概念:图片的卷积和池化操作
  13. 模拟频率、数字频率、模拟角频率之间的关系
  14. uipath工具介绍
  15. 天平游码读数例题_天平游码怎么读数?
  16. 解决office2010安装过程出错的问题
  17. 基于JavaSwing开发学生信息管理系统(SQLServer数据库版本) 毕业设计 课程设计 大作业
  18. 在Tomcat上安装部署SAIKU
  19. expdp异地备份 (expdp导出数据到其他服务器)
  20. 世界著名电影特效公司

热门文章

  1. 瑞芯微RK3308方案简介
  2. 金钥匙学校计算机,金钥匙学校新年贺词:为广大家长点赞
  3. 方舟原始恐惧mod生物代码_【安卓MOD】方舟生存进化2.0内置修改菜单
  4. 用信鸽解释HTTPS
  5. 2019计算机四级真题及答案,【2019年6月大学英语四级真题及答案完整版(卷二)】- 环球网校...
  6. 2022年最新北京机动车签字授权人模拟试题及答案
  7. 一入侯门“深”似海,深度学习深几许(深度学习入门系列之一)
  8. 移动短信发送-SDK2.0
  9. React实现优雅的弹窗
  10. 程序员如何高效准备简历和面试04:技术简历应该怎么写、怎么投?