精华内容
下载资源
问答
  • 二进制逻辑运算
    2021-03-28 09:30:41

    介绍

      计算机中的逻辑关系是一种二值逻辑,二值逻辑很容易用二进制的数 1(true)或 0(false)表示,例如真与假、是与否、成立于不成立

    • 包括逻辑“与”、逻辑“或”、逻辑“非”、逻辑“异或”。
    • 我在不同的地方查二进制逻辑运算发现使用的符号有多种,这里采用算法竞赛中所使用的符号。

    逻辑“与”

    “与”运算(逻辑乘),用符号 “ & \& &” 或 a n d and and 表示。

    • 1   &   1 = 1 1\ \&\ 1=1 1 & 1=1
    • 0   &   0 = 0 0\ \&\ 0=0 0 & 0=0
    • 1   &   0 = 0 1\ \&\ 0=0 1 & 0=0
    • 0   &   1 = 0 0\ \&\ 1=0 0 & 1=0

    例: 1010   & 1010\ \& 1010 &
       1001 ‾ = \underline{1001}= 1001=
       1000 1000 1000
    小结:一位为 0 0 0,结果为 0 0 0;若都为 1 1 1,结果为 1 1 1


    逻辑“或”

    “或”运算(逻辑加),用符号 “ ∣ | ” 或 o r or or 表示。

    • 1   ∣   1 = 1 1\ |\ 1=1 1  1=1
    • 0   ∣   0 = 0 0\ |\ 0=0 0  0=0
    • 1   ∣   0 = 1 1\ |\ 0=1 1  0=1
    • 0   ∣   1 = 1 0\ |\ 1=1 0  1=1

    例: 1010   ∣ 1010\ | 1010 
       1001 ‾ = \underline{1001}= 1001=
       1011 1011 1011
    小结:一位为 1,结果为 1;若都为 0 0 0,结果为 0 0 0


    逻辑“非”

    “非”运算(逻辑否),用符号 “~” 或 n o t not not 表示。

    • ~1 = 0
    • ~0 = 1

    例:~ 10 = 10= 10=
          01 \ \ 01   01
    小结: 1 1 1 0 0 0,非 0 0 0 1 1 1


    逻辑“异或”

    “异或”运算通常用符号 “xor”1 表示,其运算规则为:

    • 0   x o r   0 = 0 0\ xor\ 0=0 0 xor 0=0
    • 0   x o r   1 = 1 0\ xor\ 1=1 0 xor 1=1
    • 1   x o r   0 = 1 1\ xor\ 0=1 1 xor 0=1
    • 1   x o r   1 = 0 1\ xor\ 1=0 1 xor 1=0

    例: 1010   x o r 1010\ xor 1010 xor
       1001 = 1001= 1001=
       0011 0011 0011
    小结:不同为 1 1 1;相同为 0 0 0


    1. 一般“^”符号用于表示乘方运算,但在 C++ 中表示为异或。为了避免歧义我们统一将异或用“xor”表示 ↩︎

    更多相关内容
  • 二进制逻辑运算PPT学习教案.pptx
  • 二进制数的算术运算和逻辑运算

    千次阅读 2021-04-08 19:28:25
    1八进制可以写成3位二进制,因为3位二进制可以表示十进制范围0~7,也就是1八进制的表示范围。 1十六进制可以写成4位二进制,因为4位二进制可以表示十进制范围0~15,也就是1十六进制的表示范围。 后缀B表示...

    算术运算
    二进制数加法采用逢二进一、减法采用借一作二。
    十六进制数加法采用逢十六进一、减法采用借一作十六。
    1位八进制可以写成3位二进制,因为3位二进制可以表示十进制范围0~7,也就是1位八进制的表示范围。
    1位十六进制可以写成4位二进制,因为4位二进制可以表示十进制范围0~15,也就是1位十六进制的表示范围。
    后缀B表示二进制,H表示十六进制,D表示十进制。
    例如:
    1011011B + 10011B = 1101110B
    1011 B * 10011B = 11010001B
    65H + 7AH = 0DFH
    65H * 7AH = 3022H
    110011.0101B + 22.4H = (110011.0101B + 100010.01B = 1010101.1001B =) 85.5625D

    逻辑运算
    二进制数的逻辑运算是位对位的运算,即本位运算结果不会对其他位产生任何影响,这一点与算术运算是截然不同的。
    二进制数的逻辑运算有四种:与AND、或OR、异或XOR、非NOT。
    在这里插入图片描述
    例如:
    10010111B AND 00111000B = 00010000B
    10010111B OR   00111000B = 10111111B
    10010111B XOR 00111000B = 10101111B

    另外,利用逻辑运算可以完成特定操作。
    AND运算可以对指定位进行清零:
    对x的第0、3位清零操作:x AND 11110110B
    OR运算可以对指定位进行置一:
    对x的第1、2位置1操作:x OR 00000110B
    XOR运算可以对指定位进行取反:
    对x的地3、7位取反操作:x XOR 10001000B

    展开全文
  • 二进制算术、逻辑运算

    千次阅读 2021-01-23 11:43:27
    二进制算术1、逻辑运算1.1 加法运算规则1.2 减法运算规则1.3 乘法运算规则1.4 除法运算规则2、逻辑运算 \quad \quad二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,...


    \quad \quad 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的.二进制数的运算包括算术运算、逻辑运算。

    1、算术运算

    1.1 加法运算规则

    规则:逢二进一
    例子
    在这里插入图片描述

    1.2 减法运算规则

    规则:借一当二
    例子
    在这里插入图片描述

    1.3 乘法运算规则

    规则:乘什么就是什么
    例子
    在这里插入图片描述

    1.4 除法运算规则

    规则:二进制的除法运算和十进制的类似,不存在进位、借位。
    例子
    在这里插入图片描述

    1.5 负数

    二进制下负数的表示: 正数的反码加1
    5: 00000000 00000000 00000000 00000101
    5的反码: 11111111 11111111 11111111 11111010
    -5: 11111111 11111111 11111111 11111011

    2、逻辑运算

    之前位运算博文

    展开全文
  • 二进制位运算

    千次阅读 2019-03-15 20:03:26
    所有编程语言都是一种人和计算机之间的翻译工具,人的数组语言翻译成二进制给计算机读取,然后把计算机的二进制数据翻译成人类的语言呈现出来。 16进制 16进制用于缩写(简写)2进制,将2进制从后向前 每4位数转换...

    2进制

    什么2进制?计算机为什么使用2进制

    逢2进1的计数规则

    电子设备设计成处理2进制,其成本最优。

    计算机如何解决人类和计算机直接的机制矛盾

    所有编程语言都是一种人和计算机之间的翻译工具,人的数组语言翻译成二进制给计算机读取,然后把计算机的二进制数据翻译成人类的语言呈现出来。
    在这里插入图片描述

    16进制

    16进制用于缩写(简写)2进制,将2进制从后向前 每4位数转换为1位16进制

    补码

    补码: 将固定位数的2进制数分一半作为负数使用的编码规则。其目的是为了解决负数计算问题。

    以4位补码为例研究补码的编码规则! 将4位2进制分一半作为负数使用。
    这种规则下减法也可以用加法来计算,相邻两个数顺时针方向增加1。

    在这里插入图片描述

    二进制的换算

    从0到最大值的计算无需多说,就按二进制来算就行。
    负数的二进制换算方法:负数可以跟-1比较,-1是所有位都为1,拿到一个二进制负数,只要看它比-1小多少就可以算出它对应的十进制数:
    11111111 11111111 11111111 11101010
    11111111 11111111 11111111 111111111(-1)
    以上面这个数为例,上面这个数比-1少了(1+4+16=21),所以它的十进制就是-1-21=-22.

    相反数的对应关系

    在这种编码规则下还有个特点,就是一个数求反再加一就是它的相反数,即:n=~n+1;
    经典面试题目:

    System.out.println(~100+1);
    如上代码的输出结果:
    A. -99 B.-100 C.-101 D.-102
    答案:B
    
    100    00000000 00000000 00000000 01100100
    ~100   11111111 11111111 11111111 10011011  -101
    ~100+1 11111111 11111111 11111111 10011100  -100
    
    System.out.println(~100);
    如上代码的输出结果:
    A. -99 B.-100 C.-101 D.-102
    答案:C
    

    2进制运算(位运算)

    位运算符有:
    与 & 、 或| 、异或^、取反~ 、左移位<< 、
    数学右移位(有符号右移)>> 、逻辑右移位(无符号右移)>>>

    与计算 & (逻辑乘法)

    计算规则:

    0 & 0 -> 0
    0 & 1 -> 0
    1 & 0 -> 0
    1 & 1 -> 1
    

    有0则0

    计算时候,将两个数对其位数,将齐的数字进行 “&” 计算

    举个栗子:

    n=     01110100 01111101 00101111 01101011
    m=     00000000 00000000 00000000 11111111
    k=n&m  00000000 00000000 00000000 01101011
    

    如上计算的意义:k是n的最后8位数!也就将n的最后8位切下放到k中。
    称为掩码(mask)计算,其中m称为掩码(mask),m有8个1时候称为8位掩码

    代码:

    int n = 0x747d2f6b;
    int m = 0xff;// 0xf  0x3f  0xffff
    int k = n&m;
    //按照2进制输出 n m k 的值
    

    右移位计算 >>>

    规则: 将数字整体向右移位,高位补,低位自动溢出

    举个栗子:

    n=        01101001 11111010 01110000 01010101
    m=n>>>1   001101001 11111010 01110000 0101010
    k=n>>>2   0001101001 11111010 01110000 010101
    g=n>>>8   00000000 01101001 11111010 01110000 
    

    代码:

    int n = 0x69fa7055;
    int m = n>>>1;
    int k = n>>>2;
    int g = n>>>8;
    //将整数n拆分为4个字节 b1 b2 b3 b4
    int b1 = (n>>>24) & 0xff;
    int b2 = (n>>>16) & 0xff
    int b3 = (n>>>8) & 0xff;
    int b4 = n & 0xff;
    

    应用:与运算和右移配合可以实现用某种长度的掩码把数据分段截取,数据传输经常这样使用

    或计算 | (逻辑加法)

    基本规则:

    0 | 0 -> 0
    0 | 1 -> 1
    1 | 0 -> 1
    1 | 1 -> 1
    

    有1则1

    将两个数对齐位置,对应数字进行 或计算

    举个栗子:

    n = 	 00000000 00000000 11001101 00000000  n=0xcd00
    m =      00000000 00000000 00000000 11011111  m=0xdf;
    k =n|m   00000000 00000000 11001101 11011111  k=n|m
    
    b1=      00000000 00000000 00000000 11011101  b1=0xdd;
    b2=      00000000 00000000 00000000 01101110  b2=0x6e;
    b3=      00000000 00000000 00000000 10111011  b3=0xbb;
    b4=      00000000 00000000 00000000 10101101  b4=0xad;
    //左移运算符
    b1<<24   11011101 00000000 00000000 00000000  
    b2<<16   00000000 01101110 00000000 00000000 		
    b3<<8    00000000 00000000 10111011 00000000 
    b4=      00000000 00000000 00000000 10101101
    
    x=       11011101 01101110 10111011 10101101
                b1      b2        b3       b4
    
    x= (b1<<24)|(b2<<16)|(b3<<8)|b4
    

    应用:或运算配合左移刚好可以完成数据的拼接,也是在数据传输中使用

    移位计算的数学意义

    复习: 移动小数点计算

    如:                  52439.
    小数点向右移动一次:  524390.  数字扩大10倍
    小数点向右移动二次: 5243900.  数字扩大100倍
    假如小数点不动,数字向左移动:数字向左移动一次,数字扩大10倍
    
    2进制时候: 数字向左移动:数字向左移动一次,数字扩大2倍
    
    128 64 32  16   8   4   2   1
     0  0   1   1   0   0   1   0
     0  1   1   0   0   1   0   0       <<1
    

    逻辑右移位 >>> 数学右移位 >> 的区别

    数学右移位 >> 计算的结果是: 数据除以2向小取整数的结果

    区别:

    逻辑右移位 >>> 移位时候,正数高位补0 负数高位补0,单纯将数字向右移动,用于数字的拆分计算
    数学右移位 >> 移位时候,正数高位补0 负数高位补1,用于替代特殊除法计算

    举个栗子:

    n=      11111111 11111111 11111111 11001110   -50    
    m=n>>1  111111111 11111111 11111111 1100111   -25 
    k=n>>2  1111111111 11111111 11111111 110011   -13 
    
    x=n>>>1 011111111 11111111 11111111 1100111    
    y=n>>>2 0011111111 11111111 11111111 110011     
    
    逻辑右移位 >>> 单纯将数字向右移动,用于数字的拆分计算
    数学右移位 >> 用于替代特殊除法计算
    
    展开全文
  • python中的二进制逻辑运算逻辑运算 逻辑运算 python中含有和c++一样的&,|,~,^等逻辑运算,可以模拟加减乘除等基础运算。 由于在python中定义变量类型没有固定的长,我们在使用bin()方法打印变量的二进制表示时...
  • 前言 前面的课程有粉丝评论说没看懂,本id回去细看了一下,确实写得...为什么要讲这个,因为计算机的本质就是这些二进制逻辑运算。计算机之所以用二进制,是因为受硬件条件的制约。但是即便是这么简单的0和1,...
  • 二进制的四则运算及逻辑运算

    千次阅读 2020-08-03 16:48:07
    因为二进制只有两个数码,一个是0一个是1,也就是0和1之间的运算。 例题 计算37-38的值 解: 分别求得+37和-38的补码:00100101、11011010 。 然后,进行按求和,得到: 00100101+11011010 = 11111111 所以,...
  • 二进制信息最基本的三种逻辑运算:1、逻辑加法(又称“或”)运算,通常用符号“+”或“∨”来表示;2、逻辑乘法(又称“与”)运算,通常用符号“×”或“∧”或“·”来表示;3、逻辑否定(又称“非”)运算。本教程操作...
  • 二进制位运算

    万次阅读 2017-12-03 20:00:01
    一,位运算基础 位运算(包括与,或,取反,异或,左移,右移等)是程序设计中的一个重要的领域。尤其是安全和底层开发中,除了指针的频繁使用之外,位运算是另一个非常频繁使用的领域。 因此,在求职面试中,...
  • 二进制逻辑运算学习

    千次阅读 2013-07-15 10:12:27
    1.十进制转二进制:(如果是整数)除以2取余,逆序排列,(如果是小数)乘以2取整,顺序排列 例:10(10)=1010(2) 10%2=0  5%2=1  2%2=0  1%2=1 最后表示为二进制就是1010 例: (0.625)10= (0.101)2 0....
  • 2、记住前15个数值的二进制与十六进制表现形式有助于完成它们之间的转换工作 3、在使用无符号数值时,进位标志有助于判断是否发生溢出 4、使用逻辑运算符“or”,“and”,和“xor”分别来实现对比特的设置、...
  • 二进制数的运算

    千次阅读 2020-06-01 23:08:44
    有关二进制的算术运算、逻辑运算
  • 二进制位运算详解

    千次阅读 2017-12-19 18:25:30
    ① 将数转化为二进制(实际机器操作中本身就是二进制,这里的意思是人工计算) ② 每一都进行如下运算: a) 1与1与运算得1 b) 1与0(0与1)与运算得0 c) 0与0与运算得0 两个数按进行或运算特点有: ...
  • 思路:2的幂次的二进制只含有一个1,n-1则除了该为0,其余皆为1,故而n & (n-1) = 0 import java.util.*; public class Main { public static void main(String[] args){ Scanner in = new Scanner(System...
  • Java中的二进制及基本的位运算二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹...
  • 详细介绍了二进制逻辑运算,本书不仅仅是学习数电模电的基础,而且还是学习微机原理的基础
  • 二进制位运算

    千次阅读 2016-10-18 16:49:49
    二进制位运算有哪些? (1).按and运算& (2).按or运算| (3).按异或运算^ (4).取反运算~ (5).左移运算 (6).右移运算>>
  • Python的二进制位运算

    千次阅读 2019-09-15 00:53:20
    Python语言能够对整数进行逐操作,它支持的运算符及含义如下所示: &:按与 |:按或 ^:按异或 ~:取反 <<:左移 >>:右移 ...
  • 二进制基础及位运算

    千次阅读 2019-12-04 16:06:09
    二进制计算 每一上的数基数的索引次幂相加之和 例如:0101=12º+12²=5 第一1基数2的索引0次幂+第三1*基数2的2次幂等于5 其他进制计算等同 十进制转2进制:除2求余法 除2求余倒序表示 简便算法:记住2的10次...
  • 逻辑与 (&&) :两者值都为1才取1,否则为0 逻辑或 ( || ):只要有1就取1,否则为0 逻辑非 ( ! ) :若是0,则取1,若是1,则取0 逻辑异或 (⊕):若两者值相同,则为0,若两者值不同,则为1 若能给你带来...
  • 二进制位运算的基本应用

    千次阅读 2018-07-28 00:07:18
    因为最近在学习的过程中...今天就来系统上地学习一下二进制位运算的操作。 借鉴和简单转载: http://blog.sina.com.cn/s/blog_87b866180101lb55.html https://blog.csdn.net/qq_30076791/article/details/50571194 ...
  • 二进制位运算(原码、反码、补码)

    千次阅读 2021-02-23 13:10:52
    1 二进制 2 原码、反码、补码 3 运算符 4 运算符使用技巧 上回学习运算符时,漏了运算符,因为运算符理解起来稍微有点复杂,所以要单独写一篇~ 要理解按运算符,要先了解计算机进行存储和计算的底层逻辑。...
  • 二进制数及其运算

    千次阅读 2020-07-28 08:14:13
    计算机的底层都是使用二进制数据进行数据流传输的,那么为什么会使用二进制表示计算机呢?什么是二进制数呢?如何使用二进制进行加减乘除?二进制数如何表示负数呢?本文将为你揭晓。 为什么用二进制表示 计算机内部...
  • 进制逻辑运算

    千次阅读 2016-03-16 23:59:27
    进制逻辑运算, n&(n-1)的作用
  • 二进制数的运算方法

    万次阅读 多人点赞 2017-08-29 14:12:13
    1.二进制数的算术运算 二进制数的算术运算包括:加、减、乘、除四则运算,下面分别予以介绍。 (1)二进制数的加法 根据“逢二进一”规则,二进制数加法的法则为: 0+0=0 0+1=1+0=1 1+1=0 (进位为1)...
  • "与"运算是计算机中一种基本的逻辑运算方式,符号表示为&,运算法则为遇0得0。也就是说只要有0,结果即为0。 举例 或运算 "或"运算符号表示为|,运算法则为遇1得1。也就是说只要有1,结果即为1。 举例 ...
  • 二进制逻辑运算符有关练习题

    千次阅读 2017-11-25 10:51:52
    写一个函数返回参数二进制中 1 的个数 #include&lt;stdio.h&gt; int div = 0; //除数 int rem = 0; //余数 int count = 0; //计1 int count_one_bits(unsigned int div) { int con = 0; //商 while (div &...
  • 进制转换与位运算

    2021-05-23 06:09:16
    二进制“001”为例, 每一都是一个bit。二进制只能由0/1组成,所以正好可以表示bit。什么是byte1个bit只能表示两种信号或者两种状态,表示的范围很小,例如英文字母26个就无法表示。所以规定8个bit一组作为一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 166,048
精华内容 66,419
关键字:

二进制位逻辑运算