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

  • 写在前面
  • MIPS文档中的指令介绍
  • 算术右移与逻辑右移及其Verilog语言区别
  • 算术左移与逻辑左移

写在前面

计算机组成原理课程设计-VerilogHDL流水线处理器开发中涉及到了如下两条指令:SRAV与SRLV,分别是向量算术右移(Shift Word Right Arithmetic Variable)与向量逻辑右移(Shift Word Right Logical Variable),这里做一些简单说明。

MIPS文档中的指令介绍

SRAV(Shift Word Right Arithmetic Variable)

SRLV(Shift Word Right Logical Variable)

算术右移与逻辑右移及其Verilog语言区别

算术右移将操作数右移s位,并且在左边空出来的位置补s位操作数的符号,对于算术右移操作来说,将二进制的数值左移n位等同于将原来的数值除2n2^n2n;
逻辑右移将操作数右移s位,并且在左边空出来的位置补s位0,忽略操作数的符号。

例如,要对4位二进制数1100(4′b11004'b11004′b1100)执行右移一位的操作。执行逻辑右移运算得到的结果为0110,而执行算术右移就是运算得到的结果为1110。

在Verilog语言中,操作符>>>执行算术右移操作,而操作符>>执行逻辑右移操作。

算术左移与逻辑左移

算​术左移和逻辑左移相同,都是在以为后右边空出的位置补0,忽略操作数的符号。将二进制的数值左移n位等同于将原来的数值乘以2n2^n2n。

例如,要对4位二进制数1100(4′b11004' b11004′b1100)执行左移一位的操作。执行逻辑左移运算以及算术左移运算得到的结果均为1000

Verilog-移位操作(算术右移与逻辑右移)相关推荐

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

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

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

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

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

    算术右移与逻辑右移的转换 用逻辑右移实现算术右移 //用逻辑右移来完成算术右移 int sra(int x, int k) {int xsrl = (unsigned) x >> k;in ...

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. kernel logo到开机动画之间闪现黑屏(android 5.X)
  2. Linux操作系统Ubuntu部署J2EE篇
  3. mui 时间样式错乱_微信编辑器样式排版错位怎么回事?
  4. linux系统it固定资产管理系统包_固定资产管理系统单机版有哪些特点?
  5. 经典面试题(6):NaN 是什么?如何测试一个值是否等于 NaN ?
  6. Linux 配置IP
  7. java线程期末考试_mooc课程 java 期末考试试卷
  8. C#如何连接带密码的access数据库?
  9. JavaScript需要记的阿斯克码
  10. js Math.rander的用法
  11. SonarQube检测出的bug、漏洞以及异味的修复整理
  12. java 线程亲缘性_基于多线程应用特性的多/众核系统片上互连与缓存一致性整体优化方法...
  13. 开源的书签服务Cherry
  14. Android Studio:Type mismatch: inferred type is Int but Unit was expected
  15. 数学建模快速入门(6)二维图和三维图
  16. TOOLFK工具-在线汉字/字母/人民币/简繁体转换工具
  17. 中职计算机专业英语说课稿,中职英语说课稿范文
  18. 【技术贴】禁止打印进程spoolsv - spoolsv.exe随机启动
  19. predict函数 R_R工程化(1) Rest API 之plumber包
  20. 中国环境污染的解决方案

热门文章

  1. 8.2 知识蒸馏方法概述
  2. linux r7 4800u,r7 4800u和r7 4800h差距大吗?下面解读可以帮您
  3. 我学会了用计算机作文,我学会了作文(15篇)
  4. 今日分享|闪魔钢化膜5.8又来了/iPhone数据线2条10.8/adidas三叶草同款89/空气炸锅/内裤3条14.9/更多...
  5. Qt--ipad滑屏效果
  6. 【车间调度】FJSP的属性模型符号约定和约束条件
  7. session Asii码转换
  8. html5锚点平滑,使用锚点定位不改变url同时平滑的滑动到锚点位置,不会生硬的直接到锚点位置...
  9. navicat随手记
  10. JavaScript DOM 学习笔记