精华内容
下载资源
问答
  • 二进制逻辑运算

    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”表示 ↩︎

    展开全文
  • python中的二进制逻辑运算逻辑运算 逻辑运算 python中含有和c++一样的&,|,~,^等逻辑运算,可以模拟加减乘除等基础运算。 由于在python中定义变量类型没有固定的位长,我们在使用bin()方法打印变量的二进制表示时...

    python中的二进制逻辑运算

    逻辑运算

    python中含有和c++一样的&,|,~,^等逻辑运算,可以模拟加减乘除等基础运算。
    由于在python中定义变量类型没有固定的位长,我们在使用bin()方法打印变量的二进制表示时,会遇到负数打印的是原码的情况。如下图所示,这与我们印象中的计算机存储的是补码的概念不符,这里打印的是原码,主要还是因为Python变量没有固定位长,不存在溢出情况,故而无法确定符号位。
    在这里插入图片描述
    那怎么办呢?
    这里,我们需要手动的给变量设置位长,如下图所示,我们将变量与上一个值,如果与上32位,则变量是32位,如果与上64位,则变量是64位。注意,这里输出的其实已经不是真正负数-2的补码了,而是对应-2补码的无符号整数的原码。
    在这里插入图片描述
    好了,我们通过手动设置位长可以模拟输出负数的补码,这对于我们在进行逻辑运算时有帮助,但是如果我们最后想要输出原来的负数表示怎么办,如果我们直接将与之后的值输出,很明显,这是一个正数。如下图所示,因为高位已经被0xFFFFFFFF给清零了。
    在这里插入图片描述

    所以,这里我们还得做一个操作,来还原补码的符号位。如下图所示,即先对与后的补码进行取反,以使得被截去的高位恢复1,然后再进行异或,恢复低位刚才由于取反而颠倒的0和1。
    在这里插入图片描述

    展开全文
  • 思路: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...

    一、判断数字是否为2的幂次

    思路: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.in);
    		while(in.hasNext()){
    			int n = in.nextInt();
    			System.out.println(isPowTwo(n));
    		}
    	}
    	public static boolean isPowTwo(int n){
    		return (n & (n-1))==0;
    	}
    }
    

    二、二进制中位1的个数

    编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。
    在这里插入图片描述
    注:输入的n是整数,不是上面说的二进制。

    (1)暴力解法:

    public class Solution {
        // you need to treat n as an unsigned value
        public int hammingWeight(int n) { //输入整数
             String s = Integer.toBinaryString(n);
             int count=0;
             for(int i=0;i<s.length();i++){
                 if(s.charAt(i)=='1'){
                     count++;
                 }
             }
             return count;
        }
    }
    

    (2)位逻辑操作解法:

    public class Solution {
        // you need to treat n as an unsigned value
        public int hammingWeight(int n) { //输入的是整数,与运算会自动转二进制运算!
             int count=0;
             while(n != 0){
                 n = n & (n-1);//每与一次,就会少掉一个1
                 count++;
             }
             return count;
        }
    }
    

    三、不使加减符号实现两数相加

    写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

    public class Solution {
        public int Add(int num1,int num2) {
            while(num2!=0){
                int temp = num1^num2;//相当于每一位相加,不考虑进位(相同为0,不同为1)
                num2 = (num1&num2)<<1;//两数相与,都为1才为1,再左移一位,说明是求进位
                num1 = temp;
            }
            return num1;
        }
    }
    

    四、

    展开全文
  • 数字逻辑电路-二进制逻辑运算

    千次阅读 2019-06-18 10:25:21
    这个操作按位与运算 异或左边四位取反,右边四位相同

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这个操作按位与运算
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    异或左边四位取反,右边四位相同
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 二进制逻辑运算详解

    千次阅读 2009-08-17 19:04:43
    二进制数1和0在逻辑上可以代表“真”与“假”、“是”与“否”、“有”与“无”。这种具有逻辑属性的变量就称为逻辑变量。 计算机的逻辑运算的算术运算的主要区别是:逻辑运算是按位进行的,位与位之间不像加减运算...
  • 判断某数的二进制形式的某位(第 k 位)是否为 1,将其与 2k2^k 相与; 将某数的二进制形式的某位(第 k 位)置 1,将其与 2k2^k 相或;
  • 二进制信息最基本的三种逻辑运算:1、逻辑加法(又称“或”)运算,通常用符号“+”或“∨”来表示;2、逻辑乘法(又称“与”)运算,通常用符号“×”或“∧”或“·”来表示;3、逻辑否定(又称“非”)运算。本教程操作...
  • 二进制布尔运算是对二进制数进行布尔运算的一种运算。二进制数的布尔运算有“与”、“或”、“非”和...中文名二进制布尔运算外文名Binary Boolean Operation类型逻辑运算应用计算机编程命名者乔治·布尔时间194...
  • 详细介绍了二进制逻辑运算,本书不仅仅是学习数电模电的基础,而且还是学习微机原理的基础
  • 二进制运算电路 二进制运算电路 二进制运算电路 数字逻辑 数字逻辑
  • 二进制算术1、逻辑运算1.1 加法运算规则1.2 减法运算规则1.3 乘法运算规则1.4 除法运算规则2、逻辑运算 \quad \quad二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,...
  • 二进制逻辑运算

    千次阅读 2013-06-23 20:50:09
    二进制逻辑运算的应用很广泛,例如系统的鉴权功能。 假设我们的系统中,每一个基本功能对应一个权值,该值是一个无符号二进制数,为2的n次方(n为正整数),系统所有功能对应的权值不重复。 功能 权值 ...
  • 二进制逻辑运算

    千次阅读 2016-08-02 20:14:15
    二进制是十分深刻的思想,不是说,一个数字系统只有 0/1 就意味着它是二进制,而是某系统,仅有两种状态: 0/1 开关 阴阳 黑白 男女
  • 二进制运算

    千次阅读 2014-02-28 18:04:49
      1.原码 反码 和 补码 二进制位元算包括按位与、按位或、...如果其他进制,比如最常见的十进制要进行二进制运算,那么先得把十进制数转成二进制数 在了解二进制运算之前,就要先掌握进制转换,那么先来复习一
  • 四位二进制ALU运算

    2010-07-18 20:50:46
    数字系统综合设计,实现四位二进制逻辑运算和算术运算!
  • 二进制算数运算 加法 (逢2进1)  名词解释  进位输入(carry in) : c in  进位输出(carry out) : c out  本位和 : S (sum)  2. ...
  • 二进制数  二进制数分为有符号数和无符号数。对于有符号位二进制数,最高位表示正负数,最高位1表示负数,最高位是0则表示正数。如一个8位的有符号位二进制数 1000 0001 最高是1则表示一个负数(-1) ,如果1000 ...
  • 二进制乘法运算

    千次阅读 2020-09-23 14:01:35
    (2) 获取整数n的二进制中最后一个1: n&~(n-1)或者n&(-n)。例如n=010100,则-n=101100,n&(-n)=000100。 (3) 去掉整数n的二进制中最后一个1: n&(n-1)。例如n=010100,n-1=010011,则n&(n-1)=010000...
  • 前言 前面的课程有粉丝评论说没看懂,本id回去细看了一下,确实写得...为什么要讲这个,因为计算机的本质就是这些二进制逻辑运算。计算机之所以用二进制,是因为受硬件条件的制约。但是即便是这么简单的0和1,...
  • C语言中的逻辑运算(!0x00=0x01),为什么啊?求详细解释(!非,非零表示1/零表示零),结果不应该是0x00吗?在线等,挺急的。。。
  • 二进制运算的基本应用

    千次阅读 2018-07-28 00:07:18
    因为最近在学习的过程中...今天就来系统上地学习一下二进制运算的操作。 借鉴和简单转载: http://blog.sina.com.cn/s/blog_87b866180101lb55.html https://blog.csdn.net/qq_30076791/article/details/50571194 ...
  • 它由两个基本字符0,1组成,二进制代码运算规律是逢二进一。 十进制1, 二进制也是1; 十进制2(1+1), 二进制为10; 十进制3(1+1+1), 二进制为11; 十进制4, 二进制为100…… 也就 是说,用二进制做十进制的加法时...
  • 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.625X2=1.25 ...
  • 1. 或(or |) 只要有一个为1,就为1。 2. 与(and &) 两个都为1,就为1。 3. 异或(xor ^) 两个不一样时,就为1。 4. 非(not !...2. 如何获取某个值的第n位的(二进制)值是多少? 例如:如何获取0x8F的

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 146,681
精华内容 58,672
关键字:

二进制逻辑运算