二进制数的运算方法

二进制数的运算方法1.二进制数的算术运算二进制数的算术运算包括:加、减、乘、除四则运算,下面分别予以介绍。(1)二进制数的加法根据“逢二进一”规则,二进制数加法的法则为:0+0=00+1=1+0=11+1=0 (进位为1)1+1+1=1(进位为1)例如:1110和1011相加过程如下:(2)二进制数的减法根据“借一有二”的规则,二进制数减法的法则为:

大家好,又见面了,我是你们的朋友全栈君。

1.二进制数的算术运算
二进制数的算术运算包括:加、减、乘、除四则运算,下面分别予以介绍。

(1)二进制数的加法

  根据“逢二进一”规则,二进制数加法的法则为:
  0+0=0
  0+1=1+0=1
  1+1=0 (进位为1) 
  1+1+1=1 (进位为1)

  例如:1110和1011相加过程如下:

在这里插入图片描述

  (2)二进制数的减法

  根据“借一有二”的规则,二进制数减法的法则为:

  0-0=0
  1-1=0
  1-0=1
  0-1=1 (借位为1)

  例如:1101减去1011的过程如下:

在这里插入图片描述

  (3)二进制数的乘法

  二进制数乘法过程可仿照十进制数乘法进行。但由于二进制数只有0或1两种可能的乘数位,导致二进制乘法更为简单。二进制数乘法的法则为:

  0×0=0
  0×1=1×0=0
  1×1=1

  例如:1001和1010相乘的过程如下:

这里写图片描述

  由低位到高位,用乘数的每一位去乘被乘数,若乘数的某一位为1,则该次部分积为被乘数;若乘数的某一位为0,则该次部分积为0。某次部分积的最低位必须和本位乘数对齐,所有部分积相加的结果则为相乘得到的乘积。

  (4)二进制数的除法

  二进制数除法与十进制数除法很类似。可先从被除数的最高位开始,将被除数(或中间余数)与除数相比较,若被除数(或中间余数)大于除数,则用被除数(或中间余数)减去除数,商为1,并得相减之后的中间余数,否则商为0。再将被除数的下一位移下补充到中间余数的末位,重复以上过程,就可得到所要求的各位商数和最终的余数。

  例如:100110÷110的过程如下:

这里写图片描述

  所以,100110÷110=110余10。

2.二进制数的逻辑运算
二进制数的逻辑运算包括逻辑加法(“或”运算)、逻辑乘法(“与”运算)、逻辑否定(“非”运算)和逻辑“异或”运算。

  (1)逻辑“或”运算

  又称为逻辑加,可用符号“+”或“∨”来表示。逻辑“或”运算的规则如下:

  0+0=0或0∨0=0
  0+1=1或0∨1=1
  1+0=1或1∨0=1
  1+1=1或1∨1=1

  
  可见,两个相“或”的逻辑变量中,只要有一个为1,“或”运算的结果就为1。仅当两个变量都为0时,或运算的结果才为0。计算时,要特别注意和算术运算的加法加以区别。

  (2)逻辑“与”运算

  又称为逻辑乘,常用符号“×”或“· ”或“∧”表示。“与”运算遵循如下运算规则:

  0×1=0或0·1=0或0∧1=0
  1×0=0或1·0=0或1∧0=0
  1×1=1或1·1=1或1∧1=1

  可见,两个相“与”的逻辑变量中,只要有一个为0,“与”运算的结果就为0。仅当两个变量都为1时,“与”运算的结果才为1。

  (3)逻辑“非”运算

  又称为逻辑否定,实际上就是将原逻辑变量的状态求反,其运算规则如下:


  可见,在变量的上方加一横线表示“非”。逻辑变量为0时,“非”运算的结果为1。逻辑变量为1时,“非”运算的结果为0。

  (4)逻辑“异或”运算 
  “异或”运算,常用符号“”或“”来表示,其运算规则为:

  00=0 或 00=0
  01=1 或 01=1
  10=1 或 10=1
  11=0 或 11=0

  可见:两个相“异或”的逻辑运算变量取值相同时,“异或”的结果为0。取值相异时,“异或”的结果为1
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148012.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab画圆并生成随机数

    matlab画圆并生成随机数%A区域生成随机数%画圆t=0:pi/100:2*pi;x=10*cos(t)+30.3;y=10*sin(t)+89.8;plot(x,y,’r’);%生成随机数a=zeros(2,8);i=1;whilei<=8temp1=rand(1)*20+20.3;temp2=rand(1)*20+79.8;if(temp1-30.3)^2+(temp2-89.8)^2<10^2

    2022年6月19日
    48
  • git分支的默认名字是_git查看某个人的提交

    git分支的默认名字是_git查看某个人的提交需求git显示当前分支的创建来源分支gitreflog–date=local–all|grepv1.0.1_devgitreflogshowv1.0.1_dev当前分支gitbranch-vv#显示本地分支和服务器分支的映射关系gitlog–graph–decorategitlog–graph–decorate–simplif…

    2022年8月22日
    5
  • FileInputFormat

    FileInputFormat最顶级是InputFormat抽象类,该类定义了两个方法,方法getSplits是负责切分输入文件(们)的,把很多的输入文件(们)切分成很多的输入分片,切分规则就是在这里定义的,每个InputSpl

    2022年7月2日
    22
  • 用户头像上传_头像使用

    用户头像上传_头像使用上传头像上传头像-持久层SQL语句的规划将对应文件保存在操作系统上,然后在把这个文件路径给记录,因为记录路径是非常便捷和方便,将来如果要打开这个文件可以依据这个路径去找到这个文件。在数据库中需要保存这个文件的路径即可。将所有的静态资源(图片、文件、其他资源文件)方法某台电脑上,在把这台电脑作为一台单独的服务器使用。对应是一个更新用户avatar字段的sql语句。updatet_usersetavatar=?,modified_user=?,modified=?whereuid=?设

    2025年7月28日
    4
  • Android自定义View之declare-styleable记录[通俗易懂]

    Android自定义View之declare-styleable记录[通俗易懂]format值类型reference资源IDcolor颜色值dimension尺寸值float浮点值string字符串fraction百分数<declare-styleablename=”XXX”>//自定义View的类名<attrname=””format=”reference”/>//资源ID<attrname=…

    2022年7月13日
    16
  • 扩展卡尔曼滤波算法及仿真实例[通俗易懂]

    扩展卡尔曼滤波算法及仿真实例[通俗易懂]在阅读本篇博客之前希望读者已经具备线性卡尔曼滤波器的基础,或者提前研读我的前一篇关于线性卡尔曼滤波器的文章:线性卡尔曼滤波算法及示例。下面不说废话,直奔主题了。一、扩展卡尔曼滤波器(EKF)理论基础扩展Kalman滤波器算法实质上是一种在线线性化技术,即安装估计轨道进行线性化处理—-泰勒级数展开,再进行线性的Kalman滤波。实际非线性滤波处理,通常对过程噪声和观测噪声近似为高斯分布,…

    2022年6月22日
    103

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号