Java 中的三种位移运算符

java中有三种移位运算符

<<      :     左移运算符,num << 1,相当于num乘以2

>>      :     右移运算符,num >> 1,相当于num除以2

>>>    :     无符号右移,忽略符号位,空位都以0补齐

下面将使用代码进行测试:这里涉及到码的表示:原码、反码、补码、移码

原码:最高位表示符号位,剩余位表示数字,0表示正数,1表示负数

反码:正数的反码等于原码,负数符号为不变,剩余位取反

补码:一个数如果为正,则它的原码、反码、补码相同;一个数如果为负,去到反码然后加1

移码:补码符号位取反

例如:表示10的这个数字(8位)

原码:0000 1010

反码:0000 1010

补码:0000 1010

移码:1000 1010

例如:表示数字 -10

原码:1000 1010

反码:1111  0101

补码:1111  0110

移码:0111  0110

例如:

public classMainTest {

//用于输出数字本身与其二进制数字public static void printBinary(intnum){

System.out.println(num);

System.out.println(Integer.toBinaryString(num));

}public static voidmain(String[] args){int num = -7774;//输出 num 的二进制位数

printBinary(num);//num 向右移动2位并输出

num =num >> 2;

printBinary(num);//无符号右移

num =num>>>2;

printBinary(num);

}

}

其结构如下:

-7774

11111111111111111110000110100010

-1944

11111111111111111111100001101000

1073741338

111111111111111111111000011010

这个数据市为了更明显的现实位移设计的,-7774向右移动2位,相当于处于4

当-7774 无符号向右移动2位,首位补0,会改变原值,结果实际如下,0系统会不显示

00111111111111111111111000011010

但是,当 - 7774 改为 7774 结果如何???

7774

1111001011110

1943

11110010111

485

111100101

最后无符号移动:负数与原值没有关系,正数符合除以 4 点特点

但是 发现右移运算符点结果:

负数:-1994

正数:1993

java里有位移吗_Java 中位移运算符 ,,相关推荐

  1. java与与短路与_Java中短路运算符与逻辑运算符示例详解

    1.逻辑运算符(部分) 符号 名称 && 短路与运算符 || 短路或运算符 & 与运算符 | 或运算符 对于理工科学习者来说,逻辑运算是较为基础的概念,通常会在大一的离散数学课 ...

  2. java里有哪些对象_Java中创建对象的方式有哪些

    创建对象的几种方式: 1.这是最常用的方法:通过new 创建对象.这种方法需要用到构造器.Demo demo1=new Demo(); Demo demo2=new Demo(1,"有参构造 ...

  3. java里包含怎么算_java中怎么判断一个字符串中包含某个字符或字符串

    展开全部 /*这是一62616964757a686964616fe58685e5aeb931333363393630个静态函数,不用声明对象就可以用的,如你的类名为Test,在任何情况下都可以调用Te ...

  4. java 里button的功能_java中怎么通过摁一个按钮显示一个图片的功能

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.awt.*; import javax.swing.*; import java.awt.event.*; public clas ...

  5. java里的foreach迭代器_java 中 for 、foreach 和 迭代器 的学习笔记

    for  ,foreach 的区别如下: 1. 形式区别 对于for循环,我们采用: for(int i=0;i 对于foreach: for(int i:arr){...} 对与迭代器: Itera ...

  6. java 负数 位移运算_Java中的位移运算

    在Java中,位移运算属于基本运算,符号是<>,即向左位移和向右位移.在Java中只有整数才能位移,所以其他的不考虑,位移运算是将整数在内存中表示的二进制进行位移,所以在Java中分为正数 ...

  7. java中的运算符_java中的运算符

    一:概述: Java的运算符,分为四类: 算数运算符.关系运算符.逻辑运算符.位运算符. 算数运算符(9):+  -  *  /  %  ++  -- 关系运算符(6):==  !=  >  & ...

  8. java string 后几位_java中String占几个位元组

    java中String占几个位元组以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! java中String占几个位元组 J ...

  9. java类怎么删除对象_java中对象的生成使用和删除

    请教大神,在java里,对象生成后,如何删除对象呢?请教大神,在java里,对象生成后,如何删除对象呢? 对象状态由JVM自动管理,GC线程自动回收无用对象,无需也不能自己删除对象. 请问在JAVA中 ...

最新文章

  1. Chrome 94 加入网页开发新技术,或有助于提高云游戏体验
  2. 域名解析跳转到另一个域名_github建立静态网站,域名解析和跳转
  3. NewCode----给定两个数R和n,输出R的n次方
  4. ddt python_python-ddt实践
  5. python编程书籍资料整理大全
  6. MySql 5.7 json数据格式 增删改查 操作 (不定时更新)
  7. 证明人工智能的数据只要足够多,就可以接近理想效果
  8. Spring Cloud服务网关 Zuul
  9. Atitit 艾提拉音频资源列表与统计 t6 六月份战果与7月份规划.docx 目录 1. 第一层次 原始资源类 采集资源类 1 1.1. K歌类采集资源 整理 1 1.2. K歌类资源初步分类
  10. 趋势预测算法大PK!
  11. 锐炬显卡和独立显卡有什么不同?
  12. Win11新建不了文本文档?Win11右键无法新建文本文档的解决方法
  13. 对ElasticSearch主副分片的理解
  14. 我不想你触及,我眼里的忧伤
  15. 不同数量的玫瑰花代表的意思
  16. nvidia windows linux,不逊于Win7,英伟达Linux版显卡驱动稳定版下载
  17. JFlow手机端开发说明与案例
  18. 冒险岛linux服务端 143端
  19. ThinkPad E14 原装 win11系统没有声音
  20. 遥感雷达,信号与图像处理,机器学习与人工智能主要国际会议【不定期更新···】

热门文章

  1. Highlight(高亮)Gridview控件列
  2. powershell 设置代理_WSL2中使用proxychains ng代理加速
  3. 简历javaweb项目描述怎么写_简历要怎么写
  4. 2019杭电多校第一场 Operation HDU - 6579
  5. sql脚本比较大,sqlserver 无法导入,就用cmd命令执行
  6. 常用JS积累之获取节点高度(基于浏览器)
  7. Interesting Finds: 2008.04.24
  8. 【南邮操作系统实验】页面置换算法(FIFO、LRU、OPT) C++ 版
  9. JavaScript闭包初相识
  10. 小程序入门学习15---数据库实战01