计算机中的移位操作

计算机中的移位操作计算机表示数字正负不是用 加减号来表示 而是用最高位数字来表示 0 表示正 1 表示负 1 有符号右移 gt gt

计算机表示数字正负不是用+ -加减号来表示,而是用最高位数字来表示,0表示正,1表示负

1.有符号右移>>(若正数,高位补0,负数,高位补1)

正数:例如4>>2

首先写出4的二进制数,因为是正数所以最高位为0,也就是第一个

0000 0000 0000 0000 0000 0000 0000 0100

右移两位得到(高位补0)

000000 0000 0000 0000 0000 0000 0000 01

结果为:1,右移n位也就是4/(2^n)

负数:例如-4>>2(高位补1)

首先写出-4的二进制数,因为是负数所以最高位为1

1000 0000 0000 0000 0000 0000 0000 0100

然后写出-4补码:保证符号位不变,其余位置取反加1(从右往左遇到第一个1,然后剩下的全部取反就是了)

1111 1111 1111 1111 1111 1111 1111 1100(补码)

右移2位: 在高位补1

1111 1111 1111 1111 1111 1111 1111 1111

根据补码写出原码才是我们所求的结果, 保留符号位,然后按位取反再加上1

0000 0000 0000 0000 0000 0000 00(取反后的结果)

0000 0000 0000 0000 0000 0000 01(再加1)

结果为:-1

 

2:无符号右移>>>(不论正负,高位均补0)

正数:例如4>>>2

与4>>2的运算相同,结果也为1

负数:例如-4>>>2

 

首先写出-4的二进制数,因为是负数所以最高位为1

1000 0000 0000 0000 0000 0000 0000 0100

然后写出-4补码:保证符号位不变,其余位置取反加1(从右往左遇到第一个1,然后剩下的全部取反就是了)

1111 1111 1111 1111 1111 1111 1111 1100(补码)

右移2位: 在高位补0

0011 1111 1111 1111 1111 1111 1111 1111

结果为:

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

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

(0)
上一篇 2026年3月16日 下午5:20
下一篇 2026年3月16日 下午5:20


相关推荐

  • Dagger2与AndroidInjector

    Dagger2与AndroidInjector使用过 Dagger 开发 Android 应用的小伙伴会知道我们会在 Activity 或 Fragment 的生命周期方法中执行成员注入 比如这样

    2026年3月19日
    2
  • android游戏开发引擎_engine引擎

    android游戏开发引擎_engine引擎一起学习,加群86896009

    2025年12月1日
    6
  • 那些看番遇到的专业词

    那些看番遇到的专业词视频 https www bilibili com video av 学习笔记片源 TV 版 电视上播出的版本 针对一般观众 对于免费电视台 片源一般存在 圣光 暗牧 收费电视台可能不存在 DVD 版 画质通常比 BD 版要低 BD 版 Blue rayDisk 蓝光光碟 是 DVD 之后的下一代光盘格式之一 通常情况下 画质很高 无圣光和暗牧 BDMV Blue

    2026年3月26日
    1
  • mysql15激活码【2021.10最新】「建议收藏」

    (mysql15激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月27日
    71
  • oracle常用操作_oracle日志文件在哪里

    oracle常用操作_oracle日志文件在哪里如果某个oracle账户经常被锁定,说明有应用程序或有人远程连接数据库多次失败后导致账户被锁定,oracle默认是有次数限制的,可以通过以下方式解决问题:1、用管理员账户登录:connsys/sysassysdba;2、解锁账户:alteruserscottaccountunlock;3、重置账户密码:alteruserscottidentifiedbytiger;4、授权:grantresource,connecttoscott;5、修改oracle默认配置:al

    2025年7月8日
    4
  • SpringBoot面试题(持续整理中……)「建议收藏」

    SpringBoot面试题(持续整理中……)「建议收藏」SpringBoot是微服务中最好的Java框架。为了更好的理解与使用SpringBoot,同时,为了记录平时的点点滴滴,便于日后的面试!1、什么是SpringBoot?用来简化Spring应用的初始搭建以及开发过程,使用特定的方式来进行配置创建独立的Spring引用程序main方法运行嵌入的tomcat无需部署war文件简化maven配置自动配置Spring添加对应的功能s…

    2022年6月7日
    27

发表回复

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

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