为什么算术左移和逻辑左移一样

(1)负数的逻辑左移,明显符号位被移走了,1变成0了呀,负数不就变成正数了吗?为何能和算术左移一样呢?

为了解答这个问题,需要了解在计算机中所有的符号数都是按照补码存储的,最高位为符号位(0:整数 1:负数),所谓的补码:原码取反+1 构成

例如:8符号整形 -1 的补码 (源码)1000 0001  (补码)1111 1111

                            -64 的补码  (源码)1100 0000    (补码)1100 0000

                         -127 的补码  (源码)1111 1111    (补码)1000 0001

其实左移一位相当于数乘以2之后的结果,现在假设有符号数占8位,表示负数范围为 -1 ~ -128,如果当前被左移数是(-1~-64),在乘以2之后都是处于合法范围,而处于这个范围的数字的补码的第二位都是1,因此不需要考虑算术右移的符号位

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
算术逻辑部件ALU实验报告 实验目的 熟悉硬件描述语言及开发环境,了解硬件系统开发的基本过程。 掌握ALU基本设计方法和简单运算器的数据传送通路。 验证ALU的功能。 实验环境 硬件环境:安装有Windows 7 或以上操作系统的PC,THINPAD教学计算机。 软件开发:FPGA开发工具软件Xilinx ISE 12.3或以上。 实验内容 根据实验原理中的要求,用VHDL语言实现一个简单的ALU。 在教学计算机THINPAD上验证实现的ALU的功能。 实验原理 算术逻辑部件ALU的主要功能是对二进制数据进行定点算术运算、逻辑运算和各种移 位操作等。算术运算包括定点加减乘除运算,逻辑运算主要用逻辑与、逻辑或、逻辑异 或和逻辑非等操作。ALU通常有两个数据输入端A和B输出操作数,一个数据输出端Y以及 标志位输出结果,通过输入操作码op来确定所要进行的操作,本实验通过实现一个状态 机,根据状态机状态的变化来输人操作数及操作码,并最终实现不同的运算,将结果和 标志位呈现出来。 本实验中的ALU要求实现基本的算术运算、逻辑运算、移位运算等,具体功能如下: "操作码 "功能 "描述 " "ADD "A+B "加法 " "SUB "A-B "减法 " "AND "A and B "与 " "OR "A or B "或 " "XOR "A xor B "异或 " "NOT "not A "取非 " "SLL "A sll B "逻辑左移B位 " "SRL "A srl B "逻辑右移B位 " "SRA "A sra B "算术右移B位 " "ROL "A rol B "循环左移B位 " ALU的输入数据为16位,操作码op为4位,算术运算时数据用补码表示。 实验步骤 本实验通过VHDL语言实现一个比较简单的ALU模块。 用VHDL语言编写ALU功能代码,并用状态机对其进行控制,使其完成实验要求的操作。操 作码和操作数的输入用微型开关SW0~SW15,计算结果的输出用数字机上的LED灯来展示。 将代码下载到教学机的FPGA中,并调试完成。 在THINPAD教学机上运行时,RST和时钟均用手动开关或按钮,便于演示。操作码和操作 数在开关SW0~SW15上输入,为便于观察和调试,每次ALU得到操作数,最好可以在LED上 显示一下,最后的运算结果在L0~L15上显示,标志位可自行选择显示方法。 状态机如下: RST -> 状态0 输入操作数A -> CLK -> 状态1 输入操作数B -> CLK ->状态2 输入操作码op 输出操作结果r -> CLK -> 状态3 输出标志位 ->CLK ->状态0 实验主要代码如下: (5)记录实验结果: "操作码 "A "B "结果 "标志位 "与预期一致" "ADD 0000 "00000000000000"000000000000000"000000000000001"0000 "一致 " " "01 "1 "0 " " " "SUB 0001 "00000000000000"000000000000000"111111111111111"0101 "一致 " " "00 "1 "11 " " " "ROL 1001 "11110000000000"000000000000000"111000000000000"0100 "一致 " " "00 "1 "1 " " " 思考题 时序电路。 实验总结 通过该实验,我们小子熟悉了硬件描述语言的基本语法与调试方式。掌握了ALU的基 本设计方法,并对XilinxISE开发环境有了更加深入的了解,学会了如何设计工程、如何 仿真,对THINPAD教学机器也更加熟悉了。 ----------------------- ALU实验报告全文共4页,当前为第1页。 ALU实验报告全文共4页,当前为第2页。 ALU实验报告全文共4页,当前为第3页。 ALU实验报告全文共4页,当前为第4页。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值