对于带符号右移,若为负数,则在存储时首位表示符号位,其值为1,表示该值是负数的移位,在移位过程中,高位补1,若符号位是0,表示是正数,在移位过程中高位补零,两者的前提是符号位保持不变:

对于负数的右移:因为负数在内存中是以补码形式存在的,所有首先根据负数的原码求出负数的补码(符号位不变,其余位按照原码取反加1),然后保证符号位不变,其余位向右移动到X位,在移动的过程中,高位补1.等移位完成以后,然后保持符号位不变,其余按位取反加1,得到移位后所对应数的原码。即为所求。

举例1:

-100带符号右移4位。

-100原码:   10000000    00000000    00000000   01100100

-100补码:    保证符号位不变,其余位置取反加1

11111111    11111111    11111111   10011100

右移4位   :   在高位补1

11111111    11111111    11111111    11111001

补码形式的移位完成后,结果不是移位后的结果,要根据补码写出原码才是我们所求的结果。其方法如下:

保留符号位,然后按位取反

10000000    00000000    00000000     00000110

然后加1,即为所求数的原码:

10000000    00000000    00000000    00000111

所有结果为:-7

举例2:

-100无符号右移4位。

-100原码:   10000000    00000000    00000000   01100100

-100补码:    保证符号位不变,其余位置取反加1

11111111    11111111    11111111   10011100

无符号右移4位   :   在高位补0

00001111    11111111    11111111    11111001

即为所求:268435449

总结:正数的左移与右移,负数的无符号右移,就是相应的补码移位所得,在高位补0即可。

负数的右移,就是补码高位补1,然后按位取反加1即可。

————————————————

版权声明:本文为CSDN博主「等你看完风景」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/king_msky/article/details/17221973

无符号右移负数_关于负数的右移与无符号右移运算小结相关推荐

  1. java 二进制 表示负数_正数负数的二进制表示

    一.问题来源 "为毛   -x=!x+1  ??? 其中x为一任意int型正整数,左式表示取x的相反数后的二进制形式,右式表示先将x的二进制按位取反后再加一得到的二进制形式. 左右两个二进制 ...

  2. java中特殊符号怎么校验_校验中文、空格和特殊符号的方法

    开发中经常校验输入的文字合法性,中文.空格和特殊符号等.总结一下这些问题的校验方法: 1)中文 js实现: function ischinese(str){ if(/[^\x00-\xff]/g.te ...

  3. java符号三角形问题_实验四 回溯算法和分支限界法 符号三角形问题

    基本题一:符号三角形问题 一.实验目的与要求 1.掌握符号三角形问题的算法: 2.初步掌握回溯算法: 二.实验题图 下面都是"-".下图是由14个"+"和14个 ...

  4. 电脑连接热点无internet访问权限_电脑连接无线网,显示无网络访问权限

    展开全部 一.路由器上网设置不成功 如果无线路由器上网设置不成功,也就是32313133353236313431303231363533e59b9ee7ad9431333365666233路由器与运营 ...

  5. python无水印下载视频_用 Python 下载抖音无水印视频

    说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 首先,我 ...

  6. k线符号图解大全_八种常见的K线符号

    1.红K(阳线):股价之收盘价高于开盘价,通常以红色表示,市场惯称「收红」. 2.绿K(阴线):股价之收盘价低于开盘价,通常以黑色表示,市场惯称「收黑」. 3.带下影线的红K或黑K:不论是红K棒还是黑 ...

  7. Java美元符号取值_如何在java中将带有美元符号的字符串数值转换为BigDecimal?

    BigDecimal Constructor采取有效的数字串. The String representation consists of an optional sign, '+' ('\u002B ...

  8. 关于负数的右移与无符号右移运算小结

    转载备忘,原博:https://blog.csdn.net/king_msky/article/details/17221973 对于带符号右移,若为负数,则在存储时首位表示符号位,其值为1,表示该值 ...

  9. 负数与正数相乘怎么算_负数乘法_正负符号_两个正负符号的规则_乘法表

    做乘法时: 例子 × 正正得正: 3 × 2 = 6 ×   负负得正 (−3)× (−2) = 6 × 负正得负: (−3)× 2 = −6 × 正负得负: 3 ×(−2) = −6 是真的,负负得 ...

最新文章

  1. 患者痛不欲生,但AI说:别给她开止疼药
  2. Python 学习之二: module, import 与 import as
  3. iOS 毛玻璃效果的实现方法
  4. MySQL 搜索指定时间范围数据, 时间字段有索引但是还是很费时
  5. SQL server management 查询所有触发器
  6. C++ Unicode和ANSII转换
  7. VMware 11安装Mac OS X 10.10 及安装Mac Vmware Tools.
  8. MFC下运行控制台不显示黑屏
  9. 作数学题应不该用计算机,数学奥数考试
  10. 论文的重复率多少算正常?
  11. 导航中的常用坐标系解析
  12. bios sgx需要开启吗_为什么内存频率只有2133比实际低?主板开启XMP提高内存频率方法...
  13. windows内核开发学习笔记十七:IRP 和 IO_STACK_LOCATION 的交互
  14. 性能调优--gzip、缓存、content-download、逐针渲染、Queueing、动态延迟加载、最小化主线程工作
  15. 《程序员》2011年12期精彩内容:企业开发的困境与变局
  16. fcpx插件:Stupid Raisins Grid Pop(网格弹出布局模板)
  17. unity 字幕滚动
  18. Bootstrap的工具提示(Tooltip)
  19. while read line只读一行或者最后一行读不到
  20. Matlab p文件解密,pcode解密 MATLAB .p 转换为.m文件

热门文章

  1. stringreader_Java StringReader skip()方法与示例
  2. mysql log4jlogger_mybatis结合log4j打印SQL日志
  3. 计算机专业技能高考试题素材,计算机技能高考模拟试题
  4. c#格式化字float_C#中的float关键字
  5. 6大分布式定时任务对比
  6. python爬虫lxml xpath测试
  7. 六、PyQt5 QTreeWidget操作,获取树控件所有2级目录内容
  8. 解决go build报错cannot find main module; see ‘go help modules‘
  9. 无法打开caffe.pb.h, no such file or directory错误
  10. [ZJOI2007]时态同步 树形DP