移位运算(无符号移位运算,有符号移位运算)

移位运算(无符号移位运算,有符号移位运算)移位运算,所有移位以5和-5为例移位运算左移(<<)正数负数带符号右移(>>)(右移向前面补对应的符号位所对应的值(正数补0,负数补1))正数负数不带符号右移(>>>)(>>>为java独有语法)正数负数移位运算可以移位运算的类型有:iuint,int,lang等类型.我们本次使用int类型一个int类型占4个字节,共32位,带符号…

大家好,又见面了,我是你们的朋友全栈君。

移位运算

可以移位运算的类型有:iuint,int,lang等类型.我们本次使用int类型
一个int类型占4个字节,共32位,带符号位,所以最高位位符号位(使用0,1表示符号位)

我们首先需要了解正数和负数的二进制码分别如何表示(以5和-5为例)

正数:0000 0000 0000 0101
负数:1000 0000 0000 0101

移位操作在二进制中都是补码移位在转会为原码得到相应的值
正数的反码,补码与原码相同
负数的反码为除符号位全部取反
负数的补码为反码加1

所以 在对正数进行移位操作时就是对原码进行操作
负数是对补码操作,操作完成后再转换为原码得到对应的值
所以-5的补码为:1111 1111 1111 1011

左移(<<)

正数

 5左移三位:0000 0000 0010 1000 =40

负数

-5左移三位:补码:1111 1111 1101 0111
原码:1000 0000 0010 1000
得:-40

带符号右移(>>)(右移向前面补对应的符号位所对应的值(正数补0,负数补1))

正数

5右移三位:0000 0000 0000 0000 =0

负数

-5右移三位:补码:1111 1111 1111 1111
反码:1111 1111 1111 1110
原码:1000 0000 0000 0001
得:-1

不带符号右移(>>>)(>>>为java独有语法)

正数

5右移三位:0000 0000 0000 0000 =0

负数

-5右移三位:补码:0001 1111 1111 1111 1111 1111 1111 1111
反码:0001 f f f f f f 1110
得:536 870 911

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158530.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 惠普电脑u盘重装系统步骤_惠普电脑优盘装系统步骤「建议收藏」

    惠普电脑u盘重装系统步骤_惠普电脑优盘装系统步骤「建议收藏」惠普是一家全球性的科技公司,旗下有三大业务,计算机就是其中一种。购买惠普电脑的朋友不在少数,给我们提供了科技领先的产品和服务。那么惠普电脑如何安装系统呢?下面就教大家惠普电脑优盘装系统步骤,有需要的朋友们赶紧来学习一下吧。惠普电脑优盘装系统步骤阅读1、打开浏览器搜索云骑士官网,找到云骑士官网并点击打开。2、首先在官网下载云骑士一键重装系统软件,下载好以后打开云骑士装机大师。3、将U盘插在电脑的U…

    2022年8月13日
    4
  • 固态硬盘数据如何恢复「建议收藏」

    固态硬盘数据如何恢复「建议收藏」虽说很多朋友都曾使用过硬盘,但是对于硬盘的一些定义,你们却不一定真正的了解,例如固态硬盘是什么?这个概念,你能说的出来吗?我想未必吧!好吧,在说咱们的正题之前,咱们先就固态硬盘这个概念解释一下。  所谓固态硬盘,其实就是一种硬盘的类别,它在使用方法和性能上与一般的硬盘完全一样,龙腾recuva数据恢复软件但是不得不说,这种固态硬盘的稳定性更好,就这一点也让固态硬盘的档次也上升了好几倍,因此,这

    2022年9月20日
    0
  • Android之ViewStub的简单使用

    Android之ViewStub的简单使用1.viewstub就是动态加载试图;也就是在我们的app启动绘制页面的时候,他不会绘制到view树中;当在代码中执行inflate操作后,她才会被添加到试图中。其实ViewStub就是一个宽高都为0的一个View,它默认是不可见的,只有通过调用setVisibility函数或者Inflate函数才会将其要装载的目标布局给加载出来,从而达到延迟加载的效果,这个要被加载的布局通过android:l…

    2022年6月28日
    25
  • arraylist的基本方法_什么是arraylist

    arraylist的基本方法_什么是arraylist简介ArrayList是java集合框架中比较常用的数据结构了。继承自AbstractList,实现了List接口。底层基于数组实现容量大小动态变化。允许null的存在。同时还实现了RandomAccess、Cloneable、Serializable接口,所以ArrayList是支持快速访问、复制、序列化的。成员变量ArrayList底层是基于数组来实现容量大小动态变化的。

    2022年10月2日
    0
  • 监控系统-Prometheus(普罗米修斯)(三)Grafana可视化图形工具

    监控系统-Prometheus(普罗米修斯)(三)Grafana可视化图形工具文章目录监控系统-Prometheus(普罗米修斯)(三)Grafana可视化图形工具Grafana入门Grafana对Prometheus的支持安装创建一个Prometheus的数据源配置dashboards参考监控系统-Prometheus(普罗米修斯)(三)Grafana可视化图形工具Github地址:https://github.com/grafana/grafana官网地址:https://grafana.com官网文档地址:http://docs.grafana.org/下载地址:ht

    2022年7月19日
    43
  • 移动终端处理器构成和基带芯片概述「建议收藏」

    移动终端处理器构成和基带芯片概述

    2022年1月28日
    65

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号