首页 > 其他分享 >数值运算 - 加法运算

数值运算 - 加法运算

时间:2023-06-14 17:03:12浏览次数:35  
标签:0000 运算 0101 数值 位数 加法 进位

数值的存储

  • 数值在计算机中以1和0存储,任何值的运算,都是以位运算为基础进行的

位运算

  • |(或):有1取1
    • 0 | 0 = 0
    • 0 | 1 = 1
    • 1 | 0 = 1
    • 1 | 1 = 1
  • &(且):两者都为1取1
    • 0 & 0 = 0
    • 0 & 1 = 0
    • 1 & 0 = 0
    • 1 & 1 = 1
  • ^ (异或):相同为0, 不同为1
    • 0 ^ 0 = 0
    • 0 ^ 1 = 1
    • 1 ^ 0 = 1
    • 1 ^ 1 = 0
  • ~ (取反): 取相反值(注意,不是数学意义上的取相反值 ~10 不等于 -10)
    • ~1 = 0
    • ~0 = 1
  • << (左移):高位丢弃,低位补0
  • (右移):无符号数,高位补0,低位丢弃;有符号数,高位补上对应符号(正数补0, 负数补1)

基本运算

加法
  • 以8位存储的 5 和 15为例:

​ 0000 0101

​ 0000 1111

  1. 步骤一:取得需要进位的数和不需要进位的数
    1. 进位数:0000 0101 & 0000 1111 = 0000 0101
    2. 不进位:0000 0101 ^ 0000 1111 = 0000 1010
  2. 步骤二:进位数右移一位,不进位数不动
    1. 进位数:0000 0101 << 1 = 0000 1010
    2. 不进位:0000 1010
  3. 步骤三:此时进位数和不进位数相加即为最终值,那么又回到了步骤一之前,重复步骤一、二,直到进位数为0
    1. 进位数:0000 0000
    2. 不进位:0001 0100
  4. 最终值即为不进位数 20
减法
  • a - b = a + (-b),这看起来可能是个毫无意义的公式,但是它可以帮助我们将减法变为加法,统一加减法之后,机器底层只需要记住怎么做加法

标签:0000,运算,0101,数值,位数,加法,进位
From: https://www.cnblogs.com/lanan-blog/p/17480764.html

相关文章

  • C++ 中的运算符重载
     您可以重定义或重载大部分C++内置的运算符。这样,您就能使用自定义类型的运算符。重载的运算符是带有特殊名称的函数,函数名是由关键字operator和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。https://www.tzffs.com/lnzt15/......
  • [ARM汇编]计算机原理与数制基础—1.1.4 逻辑运算
    在计算机中,逻辑运算是对二进制数据进行操作的基础。逻辑运算主要包括以下几种:与(AND)、或(OR)、非(NOT)和异或(XOR)。接下来,我们将详细介绍这几种逻辑运算的原理及其应用。与(AND)运算与运算的规则如下:0AND0=00AND1=01AND0=01AND1=1两个二进制数进行与运算时,从最低......
  • opencv 边界填充/数值计算/图像阈值
    边界填充importcv2importmatplotlib.pyplotaspltimportnumpyaspyimg=cv2.imread('C:/Users/59925/Desktop/pytest/pics/minions-s.jpg')#读取文件#边界填充#指定填充边界大小top_size,bottom_size,left_size,right_size=50,50,50,50#函数一样只是填充方法type不......
  • UE中的数学运算小记
    Title:UE中的数学运算小记记录一些UnrealEngine(UE)常用的数学运算1.AABBkeywords:UEBox,AABBAABB使用的是FBox、FBox2D,相应代码如下:FBoxBox;//初始化Box.Min=Box.Max=Pt;//把点添加进Box,扩展Box的边界,FBox/FBox2D都重载了+=运算符Box+=Pt2.四元......
  • C++面试八股文:了解位运算吗?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第12面:面试官:了解位运算吗?二师兄:了解一些。(我很熟悉)面试官:请列举以下有哪些位运算?二师兄:按位与(&)、按位或(|)、按位异或(^),按位取反(~)、左移(<<)和右移(>>)。面试官:好的。那你知道位运算有什么优势吗?二师兄:优势主要有两点:1.速度快。2.节......
  • VBA运算符
    VBA运算符可以分为以下6类:赋值运算符算术运算符关系运算符逻辑运算符连接运算符其他运算符 原文:https://www.lanrenexcel.com/vba-operators/......
  • Pandas中执行元素级的逻辑运算符使用“&”、“|”、“~”,而不是“and”、“or”、“no
    目录1.两种运算符工作方式不同2.举例对比1.两种运算符工作方式不同在Python中,and和&是两个不同的运算符,它们的工作方式有所不同。and是Python的内置逻辑运算符,它是用来连接两个逻辑表达式的。当and两边的表达式都为True时,整个逻辑表达式的结果才为True。例如,TrueandTrue结......
  • shell中中括号实现变量运算
     001、[root@PC1test03]#a=100[root@PC1test03]#echo$a100[root@PC1test03]#echo$a+500100+500[root@PC1test03]#echo$[a+500]##中括号可以实现变量运算600[root@PC1test03]#echo$a*3100*3[root@PC1test03]#echo$[a*3]300[root@PC1test03]#......
  • C++ 运算符重载讲解与经典实例
    C++中预定义的运算符的操作对象只能是基本数据类型,实际上,对于很多用户自定义类型,也需要有类似的运算操作。例如: classcomplex{public:complex(doubler=0.0,doubleI=0.0){real=r;imag=I;}voiddisplay();private:doublereal;doubleimag;};comple......
  • C++面试八股文:在C++中,你知道哪些运算符?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第11面:面试官:在C++中,你都知道都哪些运算符?二师兄:啥?运算符?+-*/=这些算吗?面试官:嗯,还有其他的吗?二师兄:当然还有,+=,-=,*=,/=,==,还有逻辑运算,位运算等。面试官:好的。那你知道这些运算的优先级吗?二师兄:(面试官傻逼吧,这谁记得住)记不住......