二进制

二进制是逢2进位的进位置,0,1是基本算符

原码反码补码

  在基本数据类型那里,有详细解释

  1. 二进制的最高位数是符号位:0表示整数,1表示负数
  2. 正数的原码,反码,补码都一样
  3. 负数的反码 = 它的原码符号位不变,其它位取反
  4. 负数的补码 = 它的反码 + 1
  5. 0的反码,补码都是0
  6. java中的数都是有符号的
  7. 在计算机运算的时候,都是以补码的方式来运算的

位运算符

  java中有4个位运算,分别是“按位与&,按位或|,按位异或^,按位取反~”,他们的运算规则是:

    按位与& —— 两位全为1,结果为1

    按位或|  ——  两位有一个为1,结果为1

    按位异或 ^ —— 两位一个为0,一个为1,结果为1

    按位取反~ —— 0变1,1变0

注意:计算的时候用补码做才是正确的,用源码算是错的

public class pra2 {
public static void main(String[] args) {
//算的时候用补码算,才是正确的结果
System.out.println("~2=" + (~2));
System.out.println("2&3=" + (2&3));
System.out.println("2|3=" + (2|3));
System.out.println("~-5=" + (~-5));
System.out.println("-3^3="+(-3^3));
}
} ~2=-3
2&3=2
2|3=3
~-5=4
-3^3=-2

几个例子

移位运算

  java中有3个移位运算符:<<,>>算术右移和算数左移,以及>>>逻辑右移,运算规则:

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

    <<  算术左移:符号位不变,低位补0,就相当于*2

    >>>逻辑右移:低位溢出,高位补0

public class pra2 {
public static void main(String[] args) {
//算的时候用补码算,才是正确的结果
//1向右移两位
System.out.println("1>>2="+(1>>2));
System.out.println("-1>>2="+(-1>>2)); System.out.println("1<<1="+(1<<1));//移动移位*2
System.out.println("1<<2="+(1<<2));//移动两位*4
System.out.println("2<<2="+(2<<2));//移动两位*4
System.out.println("-1<<2="+(-1<<2)); System.out.println("3>>>1="+(3>>>1));
System.out.println("3>>>2="+(3>>>2));
}
} 结果:
1>>2=0
-1>>2=-1
1<<1=2
1<<2=4
2<<2=8
-1<<2=-4
3>>>1=1
3>>>2=0

几个例子

最新文章

  1. 基于C/S架构的3D对战网络游戏C++框架 _05搭建系统开发环境与Boost智能指针、内存池初步了解
  2. .net post的参数如果出现乱码如何解决!
  3. Wix 安装部署教程(十二) -- 自动更新WXS文件
  4. Atitit.javascript 实现类的方式原理大总结
  5. 【HDU 2855】 Fibonacci Check-up (矩阵乘法)
  6. IN改写关联注意事项!
  7. 有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
  8. linux find命令强大之处
  9. C# 使用Process调用外部程序中所遇到的参数问题
  10. http工具类
  11. Caused by:java.sql.SQLException:ORA-01008:并非所有变量都已绑定
  12. java~集合的介绍和使用
  13. iOS开发之线程组解决请求多个接口数据,完成后,再刷新界面
  14. 在cikuapi.com上抓取相关词
  15. Git分支merge和rebase的区别
  16. sysbench安装、使用、结果解读
  17. Linux服务器 java生成的图片验证码乱码问题
  18. 如何安装win10和linux [ubuntu14]双系统
  19. 构建RequestDelegate管道
  20. dhcp 提示could not load neutron.agent

热门文章

  1. QSqlDatabase数据库
  2. [转]大牛们是怎么阅读 Android 系统源码的
  3. USB驱动分析
  4. mysql表设计注意点
  5. Mongodb数据存储优缺点
  6. python与mysql的数据交互
  7. [ansible-playbook]4 持续集成环境之分布式部署利器 ansible playbook学习
  8. SSH与ansible 部署方法与核心模块简介
  9. Docker那些事儿之镜像创建
  10. 一、XML DOM、XMLDocument