【八荒岛源码论坛】【audacity 源码分析】【bootstrap 源码模板】源码乘法右移添1

1.原码反码补码计算口诀
2.整数乘法器/除法器

源码乘法右移添1

原码反码补码计算口诀

       ä¸€ï¼šåŽŸç ,源码右移反码,补码与加减乘除运算

       1:原码,反码与补码

       æ­£æ•°çš„原码,反码,补码都一至.

       è´Ÿæ•°åŽŸç ä¸ºç»å¯¹å€¼äºŒè¿›åˆ¶æœ€é«˜ä½å–1, 负数的反码是原码(符号位除外)按位取反,  è´Ÿæ•°è¡¥ç æ˜¯åç +1

       å¦‚9的原码,反码,补码都是

       -9 原码

       -9的反码  

       -9的补码  

       2:加法运算(与十进制类似例如6+9)

       6的二进制

       9的二进制

       ç›¸åŠ ç»“æžœ    è½¬æˆåè¿›åˆ¶å°±æ˜¯

       3:减法运算,减法其实就是将减的数转成负数取补码相加,例如6-9

       æ­£6的二进制

       -9的二进制(补码)

       ç›¸åŠ ç»“æžœ   // 这个数就是-3的二进制

       å‡1成反码 ... 取反 ... 就是-3的原码喽

       4:乘法运算(通过左移化解成加法运算)

       åè¿›åˆ¶ä¸­ä¾‹å¦‚ *   = *(1 * ^0 +2 * ^1+1 * ^2) = ++ = ,二进制也是一样,

       ç®—9 * 6,    6的二进制, 即 9 * (0 * 2^0 + 1 * 2^1 + 1 * 2^2)位数为0的都等于0,分解出来就是 0 + (9 <<1) + (9<<2)

       9的二进制   上面分解就等于  0++ =  åè¿›åˆ¶å°±æ˜¯

       5:除法(与十进制除法相似从高往低)

       å¦‚ / 5 ,  äºŒè¿›åˆ¶ ,  5二进制

       ä»Žç¬¬ä¸€ä½ 1 <   结果为0, 余1

       åˆ°ç¬¬äºŒä½1 0 <结果为0,余

       åˆ°ç¬¬ä¸‰ä½ 0 < 结果为0余

       åˆ°ç¬¬å››ä½ 1 > 结果为1, 余为- = ,

       åˆ°ç¬¬äº”位 0 > 结果为1 余为 - =

       åˆ°ç¬¬å…­ä½ 0 > 结果为1 余为 - = 1

       åˆ°ç¬¬ä¸ƒä½ 1 1 < 结果为0  ä½™ä¸º

       åˆèµ·æ¥ç»“果就是  ï¼Œä½™ä¸º     转十进制就是余3

       äºŒï¼šå¸¸ç”¨ä½è¿ç®—技巧

       1:左移 << 与 右移>>

       å·¦ç§»<<各二进位全部左移若干位,高位丢弃,低位补0, 右移>>各二进位全部右移若干位,对无符号数,高位补0, 有符号时会补上符号位,在JAVA中若无符号右移为>>>,符号位补0

       å·¦ç§»n位即二进制右边补了n个0, 相当乘于2^n,  å³ç§»n位相当除2^n, 最常见 除2的操作  num >> 1 , 取颜色值

       ä¾‹å¦‚求int最小值,最大值

       ä¾‹å¦‚颠倒二进制位 变成

       2:~ 取反 0变1, 1变0

       å¦‚上求最大值最小值,最大值取反即为最小值,最小值取反即为最大值

         æœ€å°å€¼  å–反 即为最大值

       3:&与运算 两个都为1时结果为1

整数乘法器/除法器

       原码一位乘法简化运算流程,避免了多位乘法和复杂位移操作,乘法仅需使用部分积寄存器存储结果。源码右移具体步骤包括取两个n位乘数,乘法最低位相乘得原乘数或0,源码右移八荒岛源码论坛存入部分积寄存器,乘法audacity 源码分析部分积右移,源码右移移出位右移进乘数寄存器高位,乘法部分积与部分积寄存器相加,源码右移结果存入部分积寄存器,乘法重复操作直至完成,源码右移部分积寄存器构成结果高位,乘法乘数寄存器构成结果低位。源码右移bootstrap 源码模板

       补码一位乘法基于原码乘法原理,乘法通过循环计算部分积,源码右移相加得到最终乘积。阵列乘法器使用手工乘法原理,discuz app源码通过相加每一位部分积得到乘积。

       Booth编码乘法器减少部分积数量,简化运算电路。通过相邻位数关系编码乘数,ngrok 2.0源码使用编码后的乘数进行计算。Booth编码过程包括编码乘数,与另一个乘数相乘,得到的乘积抛弃多余位数即为原式积。尽管Booth编码减少了部分积数量,但延迟主要由加法器串行连接引起。

       进位保留加法器(Carry Save Adder, CSA)优化串行加法实现。CSA实现中,上一个CSA为下一个CSA提供输入,最后一个CSA依赖所有计算结果,导致较大延迟。通过3-2计数器优化,CSA不依赖过去计算结果,减少计算延迟。

更多内容请点击【娱乐】专栏

精彩资讯