首页 > 其他分享 >5、二进制算数运算逻辑

5、二进制算数运算逻辑

时间:2023-10-08 17:57:14浏览次数:27  
标签:逻辑 那么 运算 结果 二进制 异或 算数

1、二进制四则运算(加减乘除)

1.1、加减乘除

image-20220726233833671

1.2、关于除法

image-20220726233721190

  • 为什么只有0/1和1/1?
  • 因为除数不能为0,也就是分母不能为0,所以没有1/0和0/0,因为不符合算数逻辑

1.3、例题

image-20220726234000494

解题思路,笔试运算

image-20220726235220355

2、二进制逻辑运算(与 或 非 异或)

2.1、逻辑与运算 ^(逻辑乘,类似&&)

image-20220726235629748

  • 只要0存在,那么逻辑与运算就是0,你可以理解为在二进制当中有任意一边为0,那么乘下来的结果就必然是0
  • 二进制的逻辑与运算,只有两边都是1的情况下,最终结果才是1
  • 逻辑与运算就是代码当中的&&

2.2、逻辑或运算,倒三角(逻辑加,类似||)

image-20220726235951093

  • 只要有一个为真,那么结果就是为真
  • 逻辑与相反全0才为0

2.3、逻辑非运算,感叹号(类似!取反)

image-20220727000035097

  • 这个很像代码当中的取反
  • 也就是跟他上述所说的,0变为1,1变为0

2.4、逻辑异或运算

image-20220727000209458

  • 相同为0,不同为1
  • A == B,那么结果为0
  • A != B,那么结果为1

2.5、例题

image-20220727000333938

1、与运算

image-20220727001921012

  • 这里是瞎猫碰上死耗子了,我下意识写出了这个结果
  • 也侧面说明我的四则运算当中的乘法是有问题的,需要多练习
  • 运算的根本就是每个对应的位数之间进行与运算比较
  • 我们从右往左看(与运算的根本是:全1为1,否则为0,也就是&&只要有一个不为真,那么就是假)
    1. 0^1 = 0
    2. 1^0 = 0
    3. 0^1 = 0
    4. 1^1 = 1
  • 从下往上,那么结果为1000

2、或运算(加运算,注意,此加非彼加)

image-20220727002238171

  • 还是一样的,我犯了个毛病,我把他当做加运算了
  • 实际上还是每个位数之间,单独进行或运算
  • 口诀为什么?(只要存在一个真,那么结果就为真,只有全为假的时候才能是假
    1. 0或1 = 1
    2. 1或0 = 1
    3. 0或1 = 1
    4. 1或1 = 1
  • 那么结果就是 1111

3、非运算

image-20220727002449879

  • 这里的非运算没有太多毛病,注意一点即可
  • 逻辑运算是不能省略位数的,我就省略了前面的0

4、逻辑异或运算

image-20220727002546319

  • 这个也没什么注意的,就记住口诀就行了
  • 我自己的理解是(A==B那么结果为0,A != B那么结果为1)
  • 做错的原因是我第一次做

标签:逻辑,那么,运算,结果,二进制,异或,算数
From: https://www.cnblogs.com/wavesbright/p/17749761.html

相关文章

  • 二进制码部分知识回顾
    &:与相同1为1,不同为0000000101111111100000000 |:或相同0的为0,不同为1000000101111100111111011 ~:非0变1,1变00000001011111101 <<:左移相当于乘以2inta=1;==>00000001a<<1;a==>左移1位==>00000010【左移可以循环,由编译器决定】:比如a=1左......
  • 给定3个整数a、b、c,计算表达式(a+b)/c的值,/是整除运算。[无解]
    题目4-2:给定3个整数a、b、c,计算表达式(a+b)/c的值,/是整除运算。  给定3个整数a、b、c,计算表达式(a+b)/c的值,/是整除运算。输入格式:输入仅一行,包括三个整数a、b、c,数与数之间以一个空格分开。(-10,000<a,b,c<10,000,c不等于0)输出格式:输出一行,即表达式的值。map......
  • mysql中limit后面不能使用运算符
    mysql中limit后面不能使用运算符进行分页查询的时候,如果写成以下sql,语句执行会报错:select*fromuserwhereid=123456andcode=111andcreate_date>=20190101andcreate_date<=20190202limit(1-1)*1,20因为mysql中limit后面不能带运算符,只能是常量。解决方法使......
  • Python入门示例系列09 Python数学运算
     Python中的各种进制一、二进制,八进制,十进制,十六进制的表示方法在python的IDLE中输入的不同进制的数值,直接转化为十进制>>>0b10#以0b开头表示的是二进制(b-Binary)/ˈbaɪnəri/2>>>0o10#以0o开头表示的是八进制(o-字母欧Octal)/ˈɒktl/8>>>0x10#......
  • Java 位运算的解读 & | ^ ~ << >>
    Java中的位运算包括以下几种:按位与(&):对应位上,如果两个数都是1,则结果为1,否则为0。inta=3;//二进制0011intb=5;//二进制0101//0001=1System.out.println("a&b="+(a&b));按位或(|):对应位上,如果两......
  • Codeforces Round 900 (Div. 3) E. Iva & Pav (位运算)
    CodeforcesRound900(Div.3)E.Iva&Pav//思路:10^9转换为2^32上的位,进行位运算,a[x][i]为到x为止第i位的1个数前缀和//对于与运算,如果当前i的前缀和不为r-l+1,则这一位的与运算结果为0//当找到从左往右第一个位置i为1使得k在这位为0,则与运算前缀大于k//二分查找最后一......
  • Codeforces Round 901 (Div. 2) C. Jellyfish and Green Apple (位运算)
    CodeforcesRound901(Div.2)C.JellyfishandGreenApple//思路:浮点数转二进制,a/b的结果为gcd(a,b)*最简分式(n/m)的结果//苹果能分的前提是人数得是一个2的次幂数,通过切割只能分为形同0.001的二进制小数//a/b的二进制如果在从左到右的sp位为1,则需要切割到这个情况//一个......
  • GO语言基础之基本运算符
    GO语言基础之基本运算符目录GO语言基础之基本运算符一、运算符内置运算符:二、算术运算符三、关系运算符四、逻辑运算符五、位运算符六、赋值运算符一、运算符作用:运算符用于在程序运行时执行数学或逻辑运算。内置运算符:Go语言内置的运算符有:算术运算符关系运算符逻辑运......
  • ansible-playbook实现MySQL的二进制部署
     #安装mysql5.6[root@ansible~]#ls-l/data/ansible/files/mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz-rw-r--r--1rootroot403177622Dec 413:05/data/ansible/files/mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz[root@ansible~]#cat/data/ansible......
  • 代码源:字典序枚举(位运算)
    点击查看代码#include<bits/stdc++.h>usingnamespacestd;constintN=7e4,p=1e9+7;intf[N],c[100];intnxt(intx){ intt=(x|(x-1))+1; inty=t|((t&-t)/(x&-x)>>1)-1; returny;}intmain(){ ios::sync_with_stdio(false); cin.tie(0); int......