首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

二进制减法中的多次借用规则是什么?

在二进制减法中,多次借用规则是指当被减数的某一位小于减数对应位时,需要向高位借位的规则。具体规则如下:

  1. 如果被减数的当前位大于或等于减数的当前位,则直接相减,得到差值,并将差值写入结果中。
  2. 如果被减数的当前位小于减数的当前位,则需要向高位借位。向高位借位的规则是,从被减数的下一位开始,找到第一个值为1的位,将其变为0,并将该位之后的所有位都变为1。然后将借位后的被减数与减数相减,得到差值,并将差值写入结果中。
  3. 如果被减数的当前位为0,且无法再向高位借位,则直接将减数的当前位写入结果中。

这样,通过多次借用规则,可以完成二进制减法运算。

请注意,本回答中不涉及云计算、IT互联网领域的名词和腾讯云相关产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Python如何定义变量?定义变量规则是什么

    上一篇文章讲述了变量概念和作用,下面讲解是变量第二个知识点 - 定义变量和定义变量名规则,下一篇在讲解变量使用。...一、定义变量 语法规则: 变量名 = 值 定义变量语法规则中间‘=’,并不是数学中等于号意思,在编程语言中而是赋值意思。...赋值:其实程序在执行时候,先计算等号(‘=’)右边值,然后把右边值赋值给等号左边变量名。 注意点:变量名自定义,要满足标识符命名规则。...二、定义变量规则 标识符: 变量命名规范 - 标识符命名规则是Python定义各种名字时候统一规范,具体规范如下: 由数字、字母、下划线组成 不能以数字开头 不能使用Python内置关键字 严格区分大小写...下面是列举常见关键字,这些关键字不用去背,在学习Python过程自然就会记得,不用就不会犯错 None True False and as break class continue

    3.2K30

    补码到底是个什么东西

    概述 先引入一个前提,在计算机数字是以二进制进行存储,也就是我们看到2,在计算机存储是10。...我们进行加法运算 2+1=3 在计算机是这样(这里先假设计算机存储是4位二进制数字) 0010+0001=0011 很容易看出来,4为二进制数能表示最大数字是1111,就像两位十进制数表示最大数字是...在做运算时要避免数值发生溢出(当然,现在计算机存储数字为64位,日常使用完全不用担心) 运算不光有加法,还有减乘除。乘法就是多次加法,除法就是多次减法。那么减法如何实现呢?...(只是我臆想情景) 通过加法来实现减法 还记得上面提到,四位二进制数表示最大数字为15,当发生溢出时: 16=>二进制:10000 => 0 17=>二进制:10001 => 1 显然,去掉最高位等于减去...你看刚才分析减法,只有被减数进行了转换,减数没变吧。很好理解。其实也是为了可以统一进行处理,引入补码后,正负数可以使用一套加减法规则进行计算。

    69410

    剑指offer:Python 二进制1个数 &0xffffffff是什么意思?

    大家好,又见面了,我是你们朋友全栈君。 阅读目录 题目描述 思路和Python实现 题目描述 输入一个整数,输出该数二进制表示1个数。其中负数用补码表示。...在二进制,为了区分正负数,采用 最高位 是 符号位 方法来区分,正数符号位为0、负数符号位为1。剩下就是这个数绝对值部分,可以采用原码、反码、补码3种形式来表示绝对值部分。...原码就是绝对值二进制数形式:例如 +7 8位二进制原码是00000111, -7 8位二进制原码是10000111。...但对于二进制运算而言,原码运算不够方便,当两个数相加时,先要判断这两个数符号是否相同,符号不同的话,还要判断哪一个数绝对值更大。所以在计算机,通常都是采用 补码 形式。...:位运算 判断完是否是负数,并对负数进行 n & 0xFFFF FFFF 处理后,就可以开始对二进制1个数进行判断和统计了;接下来是 位运算巧妙运用了:利用 n&1 和 n>>1这两个位运算

    86730

    关于补码,大学老师讲很不负责任

    原码很好理解,对吧,就是一个数二进制表示嘛,比如数字 5,对于一个 8 位二进制位,就是 0000 0101,但是计算机不能只做加法,还要做减法,也就是说不仅要能表示正数,也要表示负数,怎么办?...补码与原码唯一区别,就是最高位表示负权重,其他位意思都一样,这句话是什么意思呢,我还是用 5 来解释。...仅仅让二进制最高位表示负权这一规则,就可以即表示正数,又可以表示正数,解决了 0 编码不唯一问题,节省了一个二进制位,非常完美的表达了数字世界。...更为重要是,它还让计算机只实现加法器就可以实现减法运算,为了方便你理解,咱们还是以 8 位二进制为例(虽然现在计算机已经 64 位,但道理是一样)。...理解了补码,再理解计算机是如何存储数据,如何进行加减法运算就容易多,向外拓展一下,比如,乘法是加法一种累加,而除法又是乘法一种变形。可以说补码就是计算机计算基础。

    59540

    计算机只会加法,那么它如何用加法来计算减法呢?

    计算机加减乘除都是通过加法实现,那么你肯定很好奇,加法和减法是完全不同操作啊,如何用加法来进行减法运算呢?下面我就通过几个例子,来解释一下具体操作过程。...「原来二进制负数表示叫做补码,补码转换规则是正数取反再加1」,比如:00000001 取反就是 11111110,然后再加1就是11111111,这就是-1二进制表示了。...补码以有符号比特二进制数定义。 正数和0补码就是该数字本身。负数补码则是将其对应正数按位取反再加1。 补码系统最大优点是可以在加法或减法处理,不需因为数字正负而使用不同计算方式。...❞ 二进制减法 好了,我们知道了补码概念之后,再来看看二进制减法。 大数减小数 251-174 转换成二进制就是 11111011 - 10101110 ,还记得我们上面不用借位公式吗?...最后的话 最重要是,我们要知道补码概念,以及补码转换规则“「正数取反再加1」”。 计算机巧妙用补码来表示负数,然后通过和一个负数(补码)相加,来实现减法操作。

    1.1K20

    原码,反码,补码深入理解与原理答案_原码反码补码例题详解

    开始我们原码,反码,补码之旅。 (一)预备知识 认识二进制,十六进制。会二进制与十进制相互转化运算 由计算机硬件决定,任何存储于计算机数据,其本质都是以二进制码存储。...其中运算器,只有加法运算器,没有减法运算器(据说一开始是有的,后来由于减法器硬件开销太大,被废了 ) 所以,计算机没法直接做减法,它减法是通过加法来实现。...但用来实现加减法的话,运算规则总归是太复杂。于是反码来了。 (三)反码 我们知道,原码最大问题就在于一个数加上他相反数不等于零。...我们回头想想我们目的是什么?是解决做减法问题,把减法当成加法来算。 两个正数相加和两个负数相加,其实都是一个加法问题,只是有无符号位罢了。而正数+负数才是真正减法问题。...(六)补码实例 好吧,接下来我们就做一做四位二进制减法吧(先不引入符号位) 0110(6)-0010(2)【6-2=4,但是由于计算机没有减法器,我们没法算】 这个时候,我们想想时钟运算

    75111

    Nodejs学习笔记(十七)--- 浮点运算decimal.js

    前言  开发过程免不了有浮点运算,JavaScript浮点运算精度问题会带来一些困扰  JavaScript 只有一种数字类型 ( Number )  JavaScript采用 IEEE 754 标准双精度浮点...(64),64位 1位浮点数符号,11存储指数,52位存储浮点数有效数字  有时候小数在二进制中表示是无限,所以从53位开始就会舍入(舍入规则是0舍1入),这样就造成了“浮点精度问题”(由于舍入规则有时大点...('1.0 以二进制表示:', a.toString(2)); console.log('0.7 以二进制表示:', b.toString(2)); console.log('直接减法运算 1.0 -...,为什么会出现这样结果,前言中已经说明^_^!...var a = 1.0; var b = 0.7 console.log('直接减法运算 a - b =', a - b); console.log('Decimal.js减法运算 a - b =',

    3.4K80

    基础野:细说原码、反码和补码

    Brief                                说来惭愧虽然刚接触计算机时已经学过原码、反码和补码内容,但最近重温时却发现“这是什么鬼东西”,看来当初只是应付了考试了而已。...A:由于为了降低当时计算机物理电路设计难度,决定采用加法代替减法运算(因此计算机内部是没有减法运算),即10-5被替换为10+(-5),而反码、补码就用于解决10+(-5)问题。...原码在以加法代替减法运算引起问题:         例如在计算0 = 1-1 = 1+(-1) = 0001 + 1001 = 1010 = -2, 发现通过原码来运算时居然会得到0 == -2结果...反码在以加法代替减法运算引起问题:         例如在计算0 = 1-1 = 1+(-1) = 0001【原码】 + 1001【原码】 = 0001【反码】 + 1110【反码】= 1111【...上面已经证明了以补数来实现减法加法化,以正数表示负数有效性。那下面我们来看看将原码转换为补码规则为什么是成立

    1.4K90

    在《我世界》里从零打造一台计算机有多难?复旦本科生大神花费了一年心血

    从逻辑门出发,再搭建出组合电路、时序电路、触发器,有了这些就能组成CPU一些基本单元,最终造出整个计算机。 现实世界,晶体管是数字电路基础;在《我世界》,红石电路是构成复杂电路基本单元。...其中,最容易用肉眼感受到威力,还是借用CPUALU完成运算计算器。 他在视频里展现了加减乘除,正余弦,以及平方根计算。 ? 从养着小猪地方走楼梯下来,就是计算器所在地了。...屏幕后面,可以看到运转电路。 先做加减乘除。比如加法: 减法也是同理。只不过,负号和减号在这里分成了两个按钮。...注意,计算机用二进制来计算,算好之后还要从二进制转成十进制,才是最终答案。这里用到了BCD/BIN转换算法,把二进制BIN码,转成十进制BCD码。...四则运算做完了,还有正余弦,用是Cordic旋转迭代算法: ? 需要多次迭代,所以运算比较慢,大概花了两分钟。 相比之下开根号就快许多,用是快速平方根算法: ? 20秒 (就) 开好了。

    82320

    负数二进制表示方法「建议收藏」

    在计算机,负数以其正值补码形式表达。 什么叫补码呢?这得先从原码,反码说起。 原码:一个整数,按照绝对值大小转换成二进制数,称为原码。...显然,这是错误答案。也就是说,在这种情况下,正常加法规则不适用于正数与负数加法,因此必须制定两套运算规则,一套用于正数加正数,还有一套用于正数加负数。从电路上说,就是必须为加法运算做两种电路。...“模”实质上是计量器产生“溢出”量,它值在计量器上表示不出来,计量器上只能表示出模   余数。任何有模计量器,均可化减法为加法运算。   ...又回了00000000,所以8位二进制系统   模为2^8。 在这样系统减法问题也可以化成加法问题,只需把减数用相应补数表示就可以   了。...这个数是什么? 首先这是个负数–>负数在计算器里都是补码形式存放–>这是个补码–>那么真值是?–> -2147483648(已知负数补码求该负数,不会求百度一下吧。。。)

    2.4K30

    为什么计算机负数要用补码表示?

    机器数才是数字在计算机二进制表示。 例如在前面的数字, +1110 是真值,而 0000, 1110 是机器数。...因此电路设计只需要设置加法器和补数器,就可以完成有符号数加法和减法运算,能够简化电路设计。...除了消除减法运算外,补码表示法还实现了 “0” 机器数唯一性: 在原码表示法,“+0” 和 “-0” 都是合法,而在补码表示法 “0” 只有唯一机器数表示,即 0000, 0000 。...而且正数使用补码的话,还不能把负数转补码算法用在正数上,还得强行加一条 “正数补码是原码本身” 规则,就离谱好吧。 ---- 7....在前文讲补码地方,我们提到计算机所有 “整型类型” 负数都会使用补码表示法,刻意强调 “整数类型” 是什么原因呢,难道浮点数和整数在计算机表示方法不同吗?

    2.8K11

    数值信息机器级存储

    x >>> k(算数右移):算数右移基本规则和逻辑右移一样,只是左边补位时候,补是最高有效位 例如:0111 >>> 2 = ==00==01(7/4),1100 >>> 2 = ==11==11...位将是什么?...这就是所谓「正溢出」。 在计算机世界里,只有加法,没有减法。并不是我们设计不出来减法数字电路,只是加法已经可以完全取代减法,而没有必要专门再设计一个减法电路来增加底层电路复杂程度了。...对于乘法操作而言,大多数计算机都有自己乘法指令,只不过我们一般不用。原因就是乘法指令非常慢,耗时。而相对于比较快移位操作而言,编译器通常会将程序数值乘法操作优化为多次移位操作组合。...除此之外,如果尾数部分不是全 0,那么当前浮点数 「NaN」,不是一个数字。 下面,我们看一个简单例子: float num = 9.0; 那么 num 二进制存储是什么呢?

    1.3K60

    溢出OF和进位CF标志位判定

    毕竟CF在两种计算方法取值不同,如果有条件跳转 指令的话,程序执行可能会受到影响。...②减法 十进制角度,如果两无符号数相减,减数大于被减数(也即结果不在0—2^n-1内),则CF=1,否则CF=0; 二进制角度,如果两无符号数相减,最高位向前游借位,则CF=1,否则CF=0。...②减法 十进制角度,如果有符号数相减结果在-2^(n-1)~2^(n-1)-1内,则OF=1,否则OF=0; 二进制角度,如果两个数异号,而相减结果与被减数符号相反,则OF=1,否则OF=0。...三、这里值得一提是,在第二部分介绍计算规则,说白了都是为了方便人计算。而在计算机, CPU根本不知道参与运算数是有符号还是无符号。...它只是按照一定指令、一定规则来计算, 然后设置标志、运用标志。

    4.2K10

    原码 反码 补码

    其中,运算器不包含减法器,倒不是说减法器实现不了,而是聪明的人发现了可以用加法器来实现减法操作,这样就不必再设计减法器了。比如,减法可以看成一个数加上另一个负数。...其实,原码、反码和补码出现就是为了解决计算机存储数字符号位问题以及让计算机能够计算减法。 2 概念 2.1 符号位 n 位二进制系统可以产生 2^n 个不同组合。...另外,编码规则应该按照如下原则进行:有符号数引入应该使硬件实现复杂度尽可能小。 可以将二进制最高位定义为符号位,符号位为 0 表示正数,符号位为 1 表示负数。...例如,在 8 位二进制系统,2 原码是 00000010,-2 原码 10000010。...0 反码会有两种形式,例如,在 8 位系统,+0 反码是 00000000,-0 反码是 11111111,这样 0 这个数字在计算机编码就不是唯一了。

    31720

    基于FPGACRC校验码生成器设计

    4)除法运算: 0÷1=0 1÷1=1 多位二进制模2除法也类似于普通意义上多位二进制除法,但是在如何确定商问题上两者采用不同规则。...后者按带借位二进制减法,根据余数减除数够减与否确定商1还是商0,若够减则商1,否则商0。多位模2除法采用模2减法,不带借位二进制减法,因此考虑余数够减除数与否是没有意义。...掌握了上面的运算规则,你可以尝试计算一个复杂一点,如下: ? 如果得到余数结果正确,你掌握东西就够用了。...六、CRC-CCITT硬件实现 CRC-CCITT生成多项式为: ? 对应二进制数就是上面复杂运算那个除数。...……D0数据即为所要求余数,即CRC校验位。

    1.5K20

    【愚公系列】软考中级-软件设计师 005-计算机系统知识(校验码)

    例如,对于两个二进制数1010和1101,进行模2运算结果为0111。 模2运算是一种二进制算法,CRC校验技术核心部分。本质是异或运算,且不考虑进位和借位。...模2减法是指在模2情况下进行减法运算。...因此,模2减法规则如下: 0-0=0   0-1=1   1-0=1   1-1=0 例如:0110-0011=0101,列竖式计算: 0 1 1 0 - 0 0 1 1 ————————...3、只要被除数或部分余数位数与除数一样多,且最高位为1,不管其他位是什么数,皆可商1。...这样,通过校验位变化可以检测出错误位置,并且还可以根据校验位变化进行纠正。 海明码构造方式是将数据位按照一定规则分组,然后在每个组添加校验位。校验位值是通过对数据位进行异或操作得到

    34420
    领券