算术右移与逻辑右移的转换

用逻辑右移实现算术右移

//用逻辑右移来完成算术右移
int sra(int x, int k)
{int xsrl = (unsigned) x >> k;int position_w_1_k = sizeof(int) << 3;position_w_1_k = position_w_1_k - 1 - k;int mask_w_1_k = 1 << position_w_1_k;int w_1_k = xsrl & mask_w_1_k;int mask_right = mask_w_1_k-1;int right = xsrl & mask_right;int left = ~w_1_k - (mask_w_1_k-1) + mask_w_1_k;return left | right;
}

用算术右移实现逻辑右移

//用算术右移完成逻辑右移
unsigned srl(unsigned x, int k)
{unsigned xsra = (int) x >> k;unsigned position_w_k = sizeof(unsigned) << 3;position_w_k = position_w_k - k;unsigned mask_w_k = 1 << position_w_k;unsigned mask = mask_w_k - 1;return xsra & mask;
}

算术右移与逻辑右移的转换相关推荐

  1. 算术左移,逻辑左移,算术右移,逻辑右移之间的区别

    1.算术左移,逻辑左移: 都是在右边补0: 比如 00101011 算术左移一位:01010110 逻辑左移一位:01010110 对于二进制的数值来说左移n位等于原来的数值乘以2的n次方 比如000 ...

  2. 【Java】位运算符---算术右移和逻辑右移、算术左移和逻辑左移

    文章目录 1. 算术左移和逻辑左移 2. 算术右移和逻辑右移 3. Java中<<.>>和>>>的含义 1. 算术左移和逻辑左移 对于有符号数或无符号数:算术 ...

  3. Verilog-移位操作(算术右移与逻辑右移)

    Verilog-移位操作(算术右移与逻辑右移) 写在前面 MIPS文档中的指令介绍 算术右移与逻辑右移及其Verilog语言区别 算术左移与逻辑左移 写在前面 在计算机组成原理课程设计-Verilog ...

  4. 算术右移与逻辑右移的区别

    算术右移与逻辑右移的区别: 1.右移移动的是二进制位 2.右移操作符分为算术右移操作符和逻辑右移操作符: 算术右移操作符: 右边(低位)舍去,左边(高位)补原符号位,原符号位为0就补0,为1就补1: ...

  5. 探讨位操作、算术右移、逻辑右移

    #include <stdio.h> // IO #include <stdlib.h> // 提供 EXIT_SUCCESS #include <limits.h> ...

  6. 逻辑左移、算术左移、逻辑右移、算术右移

    汇编指令: (注意,所有移位指令,被移出去的那个位上的值,会被赋值给CF标志位) 逻辑左移:SHL(右边补0) 算术左移:SAL(1.寄存器中自动转换成SHL,左移不存在算术左移,所有左移都是SHL: ...

  7. 细节6:算术右移和逻辑右移

    一.对于有符号数 int 正数,左移直接丢弃最高位,在低位补对应个数的0: 正数,右移直接丢弃最低位,在高位补对应个数的0: 负数,左移直接丢弃最高位,在低位补对应个数的0: 负数,右移直接丢弃最低位 ...

  8. 算术右移 java_Java 中 算术右移和逻辑右移有什么区别?

    算术移位:>>,有符号的移位操作,右移之后的空位用符号位补充,如果是 正数用 0 补充,负数用1补充. 例1: -4>>1 -4的原码 10000000 00000000 00 ...

  9. 算术左移、算术右移、逻辑右移

    首先说明一点,本文所有的操作都是针对存储在计算机中中二进制的操作,正数在计算机中是用二进制表示的,负数在计算机中使用补码表示的. 算术左移(<<):有符号的移位操作:该操作时将运算数的二进 ...

最新文章

  1. mysql gtid 1236_MYSQL主从搭建GTID报错 error 1236 master has purged binary logs containing GTIDs?...
  2. python中find函数忽略大小写_python字符串(大小写、判断、查找、分割、拼接、裁剪、替换、格式化)...
  3. poj1274 最大二分匹配
  4. SAP Spartacus B2B 页面信息提示图标的弹出窗口显示实现逻辑
  5. 使用Java 8流进行快速失败的验证
  6. Mybatis中强大的resultMap
  7. php无限次执行函数,php-PHP一个方法根据传递值怎么执行多次?
  8. android应用图标在哪修改器,手机应用图标修改器app
  9. c语言中十六进制可以直接和十进制运算吗,C语言 · 十六进制转十进制
  10. ks 曲线_Ks密度曲线分布图绘图
  11. 2022-2028年中国生物质颗粒行业市场行情动态及竞争战略分析报告
  12. android主线程和子线程的区别
  13. Jscript函数的使用
  14. 使用Matlab SPM12与MRIcroGL进行头核磁ROI的标准化与Overlap图的制作
  15. UE4 对接Steam
  16. 电子琴节奏包制作_【买前必看】雅马哈kb291电子琴是杂牌吗音色怎么样?用后感受评测说【真实大揭秘】-欧阳倩倩的文章...
  17. 【前端趋势】Vue、Vite作者尤雨溪前端趋势2022主题演讲
  18. 2018校招笔试真题汇总(java/C++)
  19. 基于Echarts实现可视化数据大屏翼兴消防监控(1页)
  20. Easymall项目分布式拆分整合(四)

热门文章

  1. 在短短几分钟内用冰柱构建超快速PHP服务器
  2. 抖音创作规范_抖音创作内容调整提示怎么办
  3. 学计算机的一定是好男人,心理学:只要满足3个条件,好男人也会学“坏”
  4. 中国人误传了数千年的七句话(不可不看!) 转帖
  5. 春节高并发抢红包的技术升华综合实战(Node.js)
  6. 领域驱动设计战术模式:领域服务
  7. 测试面试题-如何测试朋友圈
  8. 冯扬文:新冠疫情下国际航运市场趋势分析
  9. 用Session记录实现页面数据的关联
  10. 谁能走得更远?百度、阿里、腾讯的区块链技术与布局对垒