精华内容
下载资源
问答
  • 二进制有符号数乘法的一些想法

    千次阅读 2019-11-23 11:36:23
    A和B是一个8bit有符号数,C=A*B,则C应该是一个16bit的有符号数,8bit有符号能用二进制表示的最大负数为-128,补码表示为10000000;最大正数为127,补码表示为01111111。两个最小的复数相乘(-128*-128)才会溢出,...

    A和B是一个8bit有符号数,C=A*B,则C应该是一个16bit的有符号数,8bit有符号能用二进制表示的最大负数为-128,补码表示为10000000;最大正数为127,补码表示为01111111。两个最小的复数相乘(-128*-128)才会溢出,但实际工程应用中,不会在8bit数的时候取到-128,只会取到-127,所以最后A和B相乘,会是一个15bit的数据,原来的16bit数据会把最高1bit截饱和。

    展开全文
  • 有符号二进制数的乘法

    万次阅读 多人点赞 2017-01-07 12:19:07
    其中两个负数的例子:3位二进制乘法结果一般需要6为二进制表达 带符号数 x=101=-3 和y=011=3相乘 结果为110111=-9  如果直接算出来十进制是-9然后转换为6为二进制我也能理解,但是我很好奇他利用了什么规则得出...
    最近在阅读《深入理解计算机系统》讲到补码乘法,书上给了一个例子是三位无符号和补码的乘法表。其中两个负数的例子:3位二进制乘法结果一般需要6为二进制表达
    带符号数
    x=101=-3 和y=011=3相乘 结果为110111=-9 
    如果直接算出来十进制是-9然后转换为6为二进制我也能理解,但是我很好奇他利用了什么规则得出这样的结果。
    根据结果推过程我认为计算机做计算都要按照正数或者说无符号数来算,那么先把x做补码非得-x=011=3 和y相乘
    ___011
    x__011
    -------------
    ___011
    +_011
    -------------
    001001
    得到z=001001,然后根据x和y的符号位异或得到应该是负数,于是将结果再求补码非 -z=110111 即-9

    我不知道是否的确是执行了是样的位操作规则得出的结果,各种百度Google没有搜到具体的补码运算过程。

    而唯一搜到的一个这个地址给出的最后的例子,我加不出他给出的位级计算的结果(反倒用我上述的模式能得到结果但是这把我搞糊涂了)



    这样理解可能会更容易一些:
    首先,我们从书上了解到关键的几个知识点:
    1. 对无符号和补码乘法,乘法运算的位级表示都是一样的。
    2. 机器使用一种乘法指令来进行有符号和无符号整数的乘法,也就是都采用无符号乘法处理,再取低位。
    3. 无符号和补码的乘法低位是相同的,书上的图也想表达的是这个意思。证明如下:

    <img src="https://pic2.zhimg.com/fc4120501bf24acfd93509ad64d2609d_b.png" data-rawwidth="470" data-rawheight="80" class="origin_image zh-lightbox-thumb" width="470" data-original="https://pic2.zhimg.com/fc4120501bf24acfd93509ad64d2609d_r.png">

    对于题主的问题,拿书上的例子来说,计算过程如下:
    <img src="https://pic2.zhimg.com/f0dc88ecdcc1e444ea0918f3db7183f5_b.png" data-rawwidth="952" data-rawheight="504" class="origin_image zh-lightbox-thumb" width="952" data-original="https://pic2.zhimg.com/f0dc88ecdcc1e444ea0918f3db7183f5_r.png">建议仔细理解一下上述几个知识点及证明过程,然后做一下后面的习题2.75加深理解。

    展开全文
  • 位数问题 a_width位的a,乘以B_width位的b,结果的位数是A_width + B_width。 定点小数问题 小数位数等于a的小数位数,加上b的小数位数之和。 补码相乘问题 补码 * 补码 = 补码 ...有符号数 * 有符号数 前三个加

    位数问题

    a_width位的a,乘以B_width位的b,结果的位数是A_width + B_width。

    定点小数问题

    小数位数等于a的小数位数,加上b的小数位数之和。

    补码相乘问题

    补码 * 补码 = 补码

    无符号数 * 无符号数

    在这里插入图片描述

    无符号数 * 有符号数

    在这里插入图片描述
    第四个加数——a先补最高位(0 0001),再连同最高位取反(1 1110)加一(1 1111),最后乘以b的符号位
    结果的最高位是符号位

    有符号数 * 无符号数

    在这里插入图片描述
    每个加数——都要补符号位
    结果的最高位是符号位

    有符号数 * 有符号数

    在这里插入图片描述
    前三个加数——都要补符号位
    第四个加数——a先补符号位(1 1001),再连同符号位取反(0 0110)加一(0 0111),最后乘以b的符号位。
    结果的最高位是符号位

    展开全文
  • 有符号二进制乘法

    千次阅读 2020-04-13 22:16:17
    有符号二进制数的乘法 我的失误(差点误以为自己乘法有问题,自己和别人算的不一样) x=101=-3 和y=011=3相乘 结果为110111=-9 我刚开始以为是简单的把连个二进制相乘得到的结果就是其答案(001111),而事实确...

    有符号二进制数的乘法

    我的失误(差点误以为自己乘法有问题,自己和别人算的不一样)

    x=101=-3 和y=011=3相乘 结果为110111=-9
    我刚开始以为是简单的把连个二进制码相乘得到的结果就是其答案(001111),而事实确非常的打脸,在我网上找了好多的例子,自己都是错的,晕了半个小时后,才迷过来。
    其实不是简单的相乘,而是把前面的符号位补出来相乘以后,才是这道题的答案(在截取n^2也就是6位数)。(111 101)*(000011)=110111=-9
    在这里插入图片描述

    展开全文
  • 在汇编乘法中,32位数字与32位数字相乘,只能是用四次16位相乘表示。 即,int32(a)* int32(b) = (h16(a)+l16(a)) * (h16(b) + l16(b)) 。 现在我们讨论下 h16(a) 和 l16(a) 的符号情况 如果a 为负数, a的31 ...
  • 深入理解计算机系统中大概提到: 32位无符号相乘二进制补码乘的位级行为是一样的?也就是说 x*y==ux*uy x和y是有符号的 而ux和uy是无符号。 这个是怎么理解的。
  • java的二进制的与和或

    2018-12-20 17:27:57
    java的所有数字都是有符号的 java中做二进制运算很别扭 因为它不以二进制显示数据 java运算的时候全部是以补码进行的运算(不论是二进制运算还是普通的运算) ,但是最后显示出来的结果全是以原码的形式 java的与运算 ...
  • 引言本文介绍了一种数据位宽可变的乘法方法,由于避免了DSP的...一个有符号二进制数,用二进制表示为:这样就将矩阵中每个数都分解成1bit数和一个权重数相乘的形式,而这个权重是2的幂次,在FPGA中可以通过简单移...
  • 二进制乘法器可以分为有符号数乘法和无符号数乘法。无符号数乘法较为简单,不需要对乘数和被乘数扩展符号位,直接使用乘数和被乘数相乘相加即可。举例:比如两个无符号数3(011)和6(110)相乘,那结果应...
  • 计算机运算基础

    2019-12-02 10:16:22
    十进制 转 二进制 重复相除,重复相乘(小数) 十六进制 八进制 原码表示法 有符号,无符号 1个字节,8位 只有7位可以存放数据 -128,127 0表示正数 1表示负数 补码表示法 反码表示法 目的是,计算数据,不是用...
  • 汇编的基础(2)

    2019-08-26 23:07:04
    十六进制: 0-9 A-F 16位的二进制整数 左边的位 称为 最高有效位(Most Significant Bit) MSB, 右边的位 称为 最低有效位(least ...imul有符号数相乘,mul无符号数相乘 int Y; int X = ( Y * 4)+3 转化为汇编代...
  • 二进制转10进制,1000101 从右往左从2的0次方开始,相乘二进制转8进制,三个一组同样成2的次方,结果依次排序; 二进制转16,四个一组,同上; 十进制转2进制/2,转16进制/16,转8进制/8; 八进制转2进制,每个...
  • 二进制转10进制,1000101 从右往左从2的0次方开始,相乘二进制转8进制,三个一组同样成2的次方,结果依次排序; 二进制转16,四个一组,同上; 十进制转2进制/2,转16进制/16,转8进制/8; 八进制转2进制,每...
  • 引言本文介绍了一种数据位宽可变的乘法方法,由于避免了DSP的...一个有符号二进制数,用二进制表示为:这样就将矩阵中每个数都分解成1bit数和一个权重数相乘的形式,而这个权重是2的幂次,在FPGA中可以通过简单移...
  • 所以4个字节就是4*8=32位 因为在计算机的二进制一个符号位,32-1=31,剩下31个位置存放数字 计算:每个位置只能是0,1这两个数字中的任意一个,两种情况 31个2相乘:2的31次方 范围:-2^31~2^31-1  其他...
  • Leetcode : 342. 4的幂

    2020-05-23 11:00:23
    位运算, 先判断是否为2的幂,然后在判断在二进制的情况下,1在偶数位,还是在奇位,从0开始,然后与0xaaaaaaaa相乘,因为0xaaaaaaaa是1010,所以&后是0, class Solution { public: bool isPowerOfFour(int...
  • 2.13.2 计算机执行带符号数的加减法时如何设置溢出标志 31 2.13.3 无符号数的加减法 31 2.13.4 乘法 32 2.13.5 除法 34 2.14 加法、减法与乘法的特征码 36 2.15 循环移位 37 2.16 双字长加减法 38 2.17 双...
  • modbus通信协议

    热门讨论 2010-08-06 15:26:22
    • 8位二进制,十六进制0...9,A...F • 消息中的每个8位域都是一个两个十六进制字符组成 每个字节的位 • 1个起始位 • 8个数据位,最小的有效位先发送 • 1个奇偶校验位,无校验则无 • 1个停止位(校验...
  • 2.12 循环不变量:将十进制转换为二进制数 2.13 常见的错误 2.14 小结 第3章 算法分析 3.1 引言 3.2 符号O 3.3 时间与空间复杂度 3.4 求和 3.5 递推关系 3.5.1 巧妙地猜测 3.5.2 分治关系 3.5.3 涉及...
  • 数据结构(C++)有关练习题

    热门讨论 2008-01-02 11:27:18
    7、 编写一个程序,将10进制数转换为其它(2-9)进制数。可以将要转换的重复除以基数,然后讲除的余数按反方向排列来实现; 8、 已知A[n]为正数数组,试写出实现下列运算的递归算法; a. 求数组A中的...
  • 范例1-104 向图的十字链表存储表示 335 ∷相关函数:CreateDG函数 1.7.4 无向图的邻接多重表存储表示 344 范例1-105 无向图的邻接多重表存储表示 344 ∷相关函数:CreateGraph函数 1.7.5 最小生成树 355 ...
  • C语言通用范例开发金典.part2.rar

    热门讨论 2012-08-31 14:18:18
    范例1-104 向图的十字链表存储表示 335 ∷相关函数:CreateDG函数 1.7.4 无向图的邻接多重表存储表示 344 范例1-105 无向图的邻接多重表存储表示 344 ∷相关函数:CreateGraph函数 1.7.5 最小生成树 355 ...
  • C 开发金典

    2013-06-20 16:20:03
    范例1-104 向图的十字链表存储表示 335 ∷相关函数:CreateDG函数 1.7.4 无向图的邻接多重表存储表示 344 范例1-105 无向图的邻接多重表存储表示 344 ∷相关函数:CreateGraph函数 1.7.5 最小生成树 355 ...
  • C语言通用范例开发金典.part1.rar

    热门讨论 2012-08-31 14:09:26
    范例1-104 向图的十字链表存储表示 335 ∷相关函数:CreateDG函数 1.7.4 无向图的邻接多重表存储表示 344 范例1-105 无向图的邻接多重表存储表示 344 ∷相关函数:CreateGraph函数 1.7.5 最小生成树 355 ...

空空如也

空空如也

1 2
收藏数 30
精华内容 12
关键字:

二进制有符号数相乘