有符号右移和无符号右移
计算机表示数字正负不是用+ -加减号来表示,而是用最高位数字来表示,0表示正,1表示负
有符号右移
若正数,高位补0,负数,高位补1 -> 一句话概括:高位补符号位
正数
例如:8 >> 2
偶数情况
8的二进制为 0000 0000 0000 0000 0000 0000 0000 1000
右移两位后 0000 0000 0000 0000 0000 0000 0000 0010
结果为2,右移n位8/(2^n)如果是奇数呢
9的二进制为 0000 0000 0000 0000 0000 0000 0000 1111
右移两位后 0000 0000 0000 0000 0000 0000 0000 0011
结果为3,右移n位近似等于9/(2^n)负数
-8的二进制为 1000 0000 0000 0000 0000 0000 0000 1000(原码)
然后写出补码 1111 1111 1111 1111 1111 1111 1111 1000(补码)
计算补码的方式为反码+1,用一句话概括就是:保证符号位不变,其余位置取反加1(从右往左遇到第一个1,然后剩下的全部取反就是了)
右移两位后 1111 1111 1111 1111 1111 1111 1111 1110(补码)
1111 1111 1111 1111 1111 1111 1111 1111(补码+1)
1000 0000 0000 0000 0000 0000 0000 0000(补码+1取反)
根据补码写出原码才是我们所求的结果, 保留符号位,然后按位取反再加上1
1000 0000 0000 0000 0000 0000 0000 0010(补码的补码,即原码)
结果为:-2
无符号右移
不论正负,高位均补0
正数:
例如8 >>> 2
与8 >> 2的运算相同,结果也为1负数:
例如-8 >>> 2
首先写出-8的二进制数,因为是负数所以最高位为1
1000 0000 0000 0000 0000 0000 0000 1000然后写出-8补码:保证符号位不变,其余位置取反加1(从右往左遇到第一个1,然后剩下的全部取反就是了)
1111 1111 1111 1111 1111 1111 1111 1111 1000(补码)
右移2位: 在高位补0
0011 1111 1111 1111 1111 1111 1111 1111 1110
结果为:即1073741822
有符号右移和无符号右移相关推荐
- 分析轮子(二)- ,, (左移、右移、无符号右移)
前言:写 分析轮子(一)-ArrayList.java 的时候看到源码中有 int newCapacity = oldCapacity + (oldCapacity >> 1); 这样的代 ...
- 通过原码、反码、补码彻底搞清左移、右移、无符号右移
文章目录 原码.反码.补码 有符号右移>> 无符号右移>>> 有符号左移<< 总结有无符号 原码.反码.补码 正数 正数的原码.反码.补码都是该数字的二进制表 ...
- Java负整数的左移、右移、无符号右移
Java负整数的左移.右移.无符号右移.正数的位移没有涉及到符号,而且正数的原码.反码.补码都是一样的,所以相对简单,但是对于负整数的位移,往往容易混淆. Java的<< >> ...
- [转载]C++ 中有符号类型到无符号类型的转换(C和C++程序员面试秘笈P9面试题6)...
本文复制自https://blog.csdn.net/abnerwang2014/article/details/20656423,是为了自己以后查看方便才复制过来的,谢谢原博主. 为了更好地解释下面 ...
- 负数时的有符号整型和无符号整型的转换
目录 一.补码 二.负数时的有符号整型和无符号整型的转换 三.关于无符号的笔试题 一.补码 有符号数在计算机中存储,用数的最高位存放符号, 正数为0, 负数为1 例如:有符号数 1000 0011,其 ...
- 有符号拓展:signed-extending无符号拓展:unsigned-extending
符号拓展 拓展意义 举个栗子 有符号拓展:signed-extending&无符号拓展:unsigned-extending 拓展意义 符号拓展的意义是产生位数拓展,数值不变的的结果.常见于不 ...
- C语言 有符号类型转换为无符号类型
C语言中变量的类型变换比较多,有些地方需要时刻注意,不然很可能写出带有bug的代码并深埋入系统,难以察觉. 例如 有符号类型和无符号类型运算,有符号类型转换为无符号类型. 需要注意的有两种情况: 1. ...
- C语言中无符号整型变量赋值负数,负数时的有符号整型和无符号整型的转换
目录 一.补码 二.负数时的有符号整型和无符号整型的转换 三.关于无符号的笔试题 一.补码 有符号数在计算机中存储,用数的最高位存放符号, 正数为0, 负数为1 例如:有符号数 1000 0011,其 ...
- 【汇编优化系列】关于符号扩展和无符号扩展(包括mips msa实现)
DATE: 2021.11.26 文章目录 前言 1.参考 2.符号扩展和无符号扩展 含义 3.举例说明 4.mips msa相关指令 前言 在mips msa intrinsic工程优化过程中,遇到 ...
- C++有符号整型和无符号整型的区别
C++有符号整型和无符号整型的区别 C++中的整型分为有符号类型整型和无符号类型整型,区别如下. 在有符号类型中:最左边的位是符号位,余下的位是数值位.符号位为1,代表负数:符号位为0,则为正数.例如 ...
最新文章
- Py之utils:utils库的简介、安装、使用方法之详细攻略
- MONTH_NAMES_GET
- koreader下载_koreader下载_koreader安装_koreader最新版_koreader安卓版下载_koreader app_易玩网...
- MySQL【案例讲解】单行函数
- Angular应用的依赖注入调试
- 研究生开题报告需要注意的几点
- 【Python数据结构】——二叉查找树(查找、构建、删除、插入、打印)
- 顽强奋斗的FreeEIM
- 关于arp.exe的一点应用
- nsga2代码解读python_代码资料
- input输入框只能输入正整数
- Networking UVALive - 2515 (最小生成树,适合kruskal)
- pycharm 激活相关
- 建立完善的日期定义表
- 计算机笔记检讨,上课没做笔记的反省检讨书范文550字
- 数据结构与算法 入门 与 排序
- iPhone媒体服务器修改,出现Apple媒体服务条款与条件已更改是怎么回事如何解决...
- STM32常用的开发工具有哪些?
- 图像处理:高斯滤波算法
- 一次真实的应急响应案例(Centos)——暴力破解、替换ps命令、留多个后门——事件复现(含靶场环境)
热门文章
- 中国的计算机网络技术学校,计算机系网络营销学校,计算机网络技术有哪些专科学校...
- 专利 | 一种基于脑电神经反馈控制智能机器人的方法
- 课题五 数控镗铣削加工工艺分析
- 关于建造的逻辑: BIM和VDC
- ON1 Effects 2018 for Mac 12.1.1 照片滤镜 摄影特效 破解版下载
- [附源码]SSM计算机毕业设计网上宠物商店JAVA
- 中国三维传感器市场趋势报告、技术动态创新及市场预测
- 被脱裤也不怕,密码安全可以这样保障
- 2022年R2移动式压力容器充装考试模拟100题及答案
- 超实用的Mac使用小技巧