精华内容
下载资源
问答
  • 二进制逻辑运算
    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”表示 ↩︎

    更多相关内容
  • 思路: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;
        }
    }
    

    四、

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

    python中的二进制逻辑运算

    逻辑运算

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

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

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

    千次阅读 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、逻辑运算

    之前位运算博文

    展开全文
  • 二进制运算、或运算、非运算

    千次阅读 2021-12-20 11:55:07
    "与"运算是计算机中一种基本的逻辑运算方式,符号表示为&,运算法则为遇0得0。也就是说只要有0,结果即为0。 举例 或运算 "或"运算符号表示为|,运算法则为遇1得1。也就是说只要有1,结果即为1。 举例 ...
  • 数字逻辑电路-二进制逻辑运算

    千次阅读 2019-06-18 10:25:21
    这个操作按位与运算 异或左边四位取反,右边四位相同
  • 二进制数的算术运算和逻辑运算

    千次阅读 2021-04-08 19:28:25
    1位八进制可以写成3位二进制,因为3位二进制可以表示十进制范围0~7,也就是1位八进制的表示范围。 1位十六进制可以写成4位二进制,因为4位二进制可以表示十进制范围0~15,也就是1位十六进制的表示范围。 后缀B表示...
  • 如果理解了十进制的四则算数运算法则,那么理解无符号二进制数的四则运算相对来讲就很简单了二进制数只有0和1两个数字,其算术运算较为简单,加、减法遵循“逢二进一”、“借一当二”的原则加法运算 运算规则:0+0=0...
  • 二进制信息最基本的三种逻辑运算:1、逻辑加法(又称“或”)运算,通常用符号“+”或“∨”来表示;2、逻辑乘法(又称“与”)运算,通常用符号“×”或“∧”或“·”来表示;3、逻辑否定(又称“非”)运算。本教程操作...
  • 二进制布尔运算

    2021-07-29 01:09:43
    二进制布尔运算是对二进制数进行布尔运算的一种运算。二进制数的布尔运算有“与”、“或”、“非”和...中文名二进制布尔运算外文名Binary Boolean Operation类型逻辑运算应用计算机编程命名者乔治·布尔时间194...
  • 二进制常用运算方式和基本概念
  • 二进制的四则运算及逻辑运算

    千次阅读 2020-08-03 16:48:07
    因为二进制只有两个数码,一个是0一个是1,也就是0和1之间的运算。 例题 计算37-38的值 解: 分别求得+37和-38的补码:00100101、11011010 。 然后,进行按位求和,得到: 00100101+11011010 = 11111111 所以,...
  • 二进制基础及位运算

    千次阅读 2019-12-04 16:06:09
    二进制计算 每一位上的数基数的索引次幂相加之和 例如:0101=12º+12²=5 第一位1基数2的索引0次幂+第三位1*基数2的2次幂等于5 其他进制计算等同 十进制转2进制:除2求余法 除2求余倒序表示 简便算法:记住2的10次...
  • 二进制数的运算可分为二进制整数运算二进制小数运算两种类型,但运算法则完全相同.由于大部分计算机中数的表示方法均采用定点整数表示法,故这里仅介绍二进制整数运算二进制小数运算与它相同.在计算机中,经常...
  • lowbit运算:可以得到一个二进制数中最低位的1所对应的值 lowbit函数实现的两种方法: 1. x & (~x+1) 2. x & -x 图例 -x 等价于 ~x+1,原因:根据计算机补码的性质,补码为原码取反后再+1 lowbit...
  • 逻辑与 (&&) :两者值都为1才取1,否则为0 逻辑或 ( || ):只要有1就取1,否则为0 逻辑非 ( ! ) :若是0,则取1,若是1,则取0 逻辑异或 (⊕):若两者值相同,则为0,若两者值不同,则为1 若能给你带来...
  • 二进制逻辑运算

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

    万次阅读 多人点赞 2017-08-29 14:12:13
    1.二进制数的算术运算 二进制数的算术运算包括:加、减、乘、除四则运算,下面分别予以介绍。 (1)二进制数的加法 根据“逢二进一”规则,二进制数加法的法则为: 0+0=0 0+1=1+0=1 1+1=0 (进位为1)...
  • 二进制和十进制的转换and位运算

    千次阅读 2021-01-30 11:02:13
    二进制的 0 1 基数: 每个进制的基数 比如十进制是10 二进制是2 二进制的位权:固定位置对应的单位值。比如一个数字从右往左从0开始递增 1.将二进制数转换成十进制 转换规则: 展开位权进行求和运算 100110 1x2^5+0x...
  • 1、逻辑类型(1)创建真:用True创建 用1表示假:用False创建 用0表示(2)创建数组a = true(3);b = false(4);a =3×3 logical 数组1 1 11 1 11 1 1b =4×4 logical 数组0 0 0 00 0 0 00 0 0 00 0 0 02、关系运算(1)分类...
  • 判断某数的二进制形式的某位(第 k 位)是否为 1,将其与 2k2^k 相与; 将某数的二进制形式的某位(第 k 位)置 1,将其与 2k2^k 相或;
  • 二进制逻辑运算

    千次阅读 2013-06-23 20:50:09
    二进制逻辑运算的应用很广泛,例如系统的鉴权功能。 假设我们的系统中,每一个基本功能对应一个权值,该值是一个无符号二进制数,为2的n次方(n为正整数),系统所有功能对应的权值不重复。 功能 权值 ...
  • 二进制与其它进制的转换和运算,应该说是计算机类的考试,逢试必考,这里总结一下知识点。二进制运算原理,大家都知道,不外乎,除2取余和乘2取整。这种费时、费力的方法,这里就不说了。考试讲究的时间,所以要找些...
  • 二进制原码 反码 补码、二进制运算二进制移位运算
  •  本关任务是实现这些逻辑运算,每种逻辑运算对应一个函数: AND(a ,b):a和b进行与运算; OR (a ,b):a和b进行或运算; NOT(a):a进行非运算; XOR(a ,b):a和b进行异或运算。  其中,参数a和b是用字符串表示...
  • 二进制运算的基本应用

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

    万次阅读 多人点赞 2017-12-03 20:00:01
    一,位运算基础 位运算(包括与,或,取反,异或,左移,右移等)是程序设计中的一个重要的领域。尤其是安全和底层开发中,除了指针的频繁使用之外,位运算是另一个非常频繁使用的领域。 因此,在求职面试中,位...
  • 自学内容: 1 、按位逻辑运算符有4个符号,分别是:  1 、一元运算符~ ,  2 、二院运算符& , ...加上运算符 ~ 的二进制数值,的结果值都会相反, 如下列所示:  ~(10011010) //表达式(书写式)  

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 172,581
精华内容 69,032
关键字:

二进制逻辑运算

友情链接: ifenliang.zip