1、右移位于左移位不同

左移位 不管是 逻辑移位 算术移位 都是低位补0;

右移位 的 逻辑移位和算术移位不同, 算术移位高位补符号位,逻辑移位 高位补0;

右移位 使用逻辑移位的话 需要强制转换成unsigned 无符号型;

2、右移位的计算方法

以 a=113 , a >>2 为例

113: 0111 0001

>>2: 0001 1100

即 28; a>>2 = 28;

以 b=-113 , b>>2 为例

-113 : 1111 0001

反码: 1000 1110

补码: 1000 1111

>>2 : 1110 0011 (高位补符号位1)

再反码:1001 1100

再补码:1001 1101

即 b>>2 = -29;

正数的 补码是其本身,所以不用反复求补码; 负数则不同。

另; 移位的位数 不能为负值 , a>>-2 或者a<<-2 是错误的。

C语言 >> 右移位运算符的原理和一些概念相关推荐

  1. C语言 位运算符详解 (使用二进制实例深入学习理解位运算符使用原理)

    C语言中位运算符共有六种 目录 1.&(按位与) 2. |(按位或) 3.^(按位抑或) 4.~(按位取反)

  2. 常见位操作及运算应用举例:1,C语言中位运算符异或“∧”的作用​​​​​​​2,异或运算的作用3,(与运算)、|(或运算)、^(异或运算)

    1 C语言中位运算符异或"∧"的作用: 异或运算符∧也称XOR运算符.它的规则是若参加运算的两个二进位同号,则结果为0(假):异号则为1(真).即0∧0=0,0∧1=1,1∧1=0 ...

  3. C语言中位运算符有哪些

    C语言中位运算符有: 位操作是程序设计中对位模式按位或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运 ...

  4. 按字节提取整形数值(按位与运算符“”、右移位运算符“”)

    输入一个十进制整数,将其转换成十六进制数输出,并提取每一字节所表示的十六进制数值逐一输出.测试数据如下: 分析:从控制台输入一个十进制整数,将其转换成十六进制数输出,接着提取其4个字节.用到按位与运算 ...

  5. Java移位运算符详解实例——左移位运算符、带符号的右移位运算符

    移位运算符也针对二进制的"位",它主要包括:左移位运算符(<<).右移位运算符(>>>).带符号的右移位运算符(>>). 1.左移运算符 ...

  6. c语言位运算符读音,C语言六种位运算符

    位运算符C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 1. 按位与运算 按位与运算符"&&quo ...

  7. c语言使用位运算符包含头文件,C语言的运算符

    c语言中可以使用加减乘除(+,-,*,/)以及取余(%)这些操作符 注意点: a.0不能做除数,不能对0进行取余,0.0可以做除数,结果是无穷大. b.取余操作的两边必须是整数: c.两个整数相除,结 ...

  8. 【老九学堂】【初识C语言】位运算符

    位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型 ...

  9. c语言 右移位什么情况补1,关于移位操作,该如何处理

    关于移位操作 请教一下各位关于移位操作的问题.我现在被搞得有点晕了 1.C/C++和JAVA中的移位操作规则是不是不一样? 2.关于算术移位和逻辑移位. 左移时候比较好理解,都是末尾补0.但是右移的时 ...

最新文章

  1. All-in-One 模式安装 KubeSphere 异常问题记录
  2. 【产品干货】幼年产品狗如何养成?这是完全自我修炼教程!
  3. 自定义数组操作工具类代码示例
  4. 排序算法【稳定性+空间复杂度+时间复杂度(平均、最好、最坏)】
  5. 请MM吃饭之工厂模式实现
  6. mybatis多排序问题
  7. Qt TextEdit 使用 (积累中....)
  8. Linux最大能创建多少用户,如何在Linux中创建多个用户帐户?
  9. The method setCharacterEncoding(String) is undefined for the type HttpServletResponse 是什么原因?...
  10. 香港科技大学计算机专业国内就业6,香港科技大学就业好吗?
  11. dotween路径移动_Unity---DOTween插件学习(3)---获取数据、协程、路径动画
  12. 云服务器学习linux_云服务器怎么选linux系统
  13. 尼尔机械纪元 机器人博士_还记得章鱼博士吊打蜘蛛侠的炫酷机械臂吗?现实版已经研发出来了...
  14. Linux 线程调度与优先级
  15. 从普通物理到弦论教材推荐
  16. 德国-帕德博恩大学轴承数据集解读
  17. The Movie db (TMDB)的API申请
  18. IT职业技能图谱:IT工程师学习路线
  19. python在煤矿的用途-息烽高校邦数据科学通识课【Python爬虫】答案
  20. mariadb无法远程访问的解决思路

热门文章

  1. 狸猫换太子:动态替换WinCE的原生驱动!
  2. 正则查找倒数第二个符合条件的字符串_EXCEL正则表达式的基础语法
  3. 加密安装Kli Linux
  4. parted工具详解
  5. mysql数据库char类型长度_mysql数据库设计字符类型及长度
  6. oracle连接满报错日志,Oracle归档日志满了导致Oracle连接(ORA-00257)报错处理
  7. 复旦大学计算机保研经历,#易保研#经验分享 | 个人经历分享,圆梦复旦大学!...
  8. 面试提问vue中v-if与v-show的区别以及使用场景
  9. mysql组件化_MySql笔记
  10. abaqus单位_ANSYS和ABAQUS哪个好,一个例子告诉你