逻辑运算与位移运算

异或运算

True ⊕ False = True

False ⊕ True = True

False ⊕ False = False

True ⊕ True = False

同或运算

True ⊙ False = False

False ⊙ True = False

False ⊙ False = Ture

True ⊙ True = Ture

或运算

True  || False = True

False || True = True

False || False = False

True  || True = True

与运算

True  && False = False

False && True = False

False && False = False

True  && True = True

非运算

┐True = False

┐False = True

位移运算

左移:2<<2 = 8

右移:8>>2 = 2

右移一位相当于除2,右移n位相当于除以2的n次方

在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

时间: 2024-10-01 20:35:19

逻辑运算与位移运算的相关文章

SQL位移运算函数

-- ============================================= -- Author:      <maco_wang> -- Create date: <2011-03-22> -- Description: <SQL位移运算函数> -- ============================================= Go --创建函数 create function displacement(@n as bigint,@m

1&lt;&lt;30 hashMap 中使用位移运算的意义

static final int MAXIMUM_CAPACITY = 1 << 30; 计算过程已1<<30为例,首先把1转为二进制数字 0000 0000 0000 0000 0000 0000 0000 0001 然后将上面的二进制数字向左移动30位后面补0得到 01000000 00000000 00000000 00000000(共计32位,是int的最大长度,第一位标示的是符号)即0x4000 0000 java语言要2的n次方咋写呀 Math.pow(2,n). 这里

Java位移运算

位移运算符用来将操作数向某个方向(向左或者右)移动指定的二进制位数.在Java中,位移运算分为左位移和右位移,符号为<<和>>. 左位移运算符 左位移的符号是<<,其运算规则是:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零. 例如,将整数 11 向左位移 1 位的过程如图所示: 从图中可以看到,原来数的所有二进制位都向左移动 1 位.原来位于左边的最高位 0 被移出舍弃,再向尾部追加 0 补位.最终到的结果是 22,相当于原来数的 2 倍

逻辑运算与移位运算

一.布尔代数:简单理解就是用数字0和1(即:二进制位)代表逻辑值真和假来进行逻辑推理基本原则的研究.是逻辑电路和逻辑运算的数学基础. 二.逻辑运算符:与.或.非.异或 一元运算符:非(NOT),只有一个操作数 二元运算符:与(AND).或(OR)和异或(XOR),有两个操作数 逻辑运算符真值表 NOT:对于输入x取反即可 AND:对于输入x和y只有都为1是x&y才为1,否则都为0,如果能确定第一个操作数是0,则无需计算第二个操作数,结果必然为0 OR:表示结果不是x就是y,两者二选一.对于操作数

(笔试题)只用逻辑运算实现加法运算

题目: 如题所示 思路: 逻辑运算,即二进制运算,无外乎与&.或|.非~.异或^以及移位>>,<<等操作: 而加法运算,在十进制中,只有按位相加以及进位两个操作. 从二进制角度也一样,就是bit位相加,加上相应的进位. 1.bit位相加,通过逻辑运算的异或操作可以实现,如0+1=1,1+0=1,0+0=0: 2.进位运算,通过逻辑运算的与操作可以实现,如1+1=1,因为进位是往高位+1,因此需要将进位结果左移一位. 将上述两个操作再做加法运算,就是加法运算的结果,这是一个递

C# 位移运算

一:"<<"和">>"运算符用于执行移位运算,分别称为左移位运算符和右移位运算符.对于X<<N和X>>N形式的运算,含义是将X向左或向右移动N位,得到的结果的类型与X相同.此处,X的类型只能是int,uint.long或ulong,N的类型只能是int,N的类型只能是int,或者显示转换为这些类型之一,否则变异程序时会出现错误.位移可以简单的理解为参数与2的幂进行运算 二:向左位移"<<"

2016.7.29 短路运算(逻辑运算是短路运算中最常见的一种)

写在前面的知识: Boolean强制转换: 除了NaN.null."".undefined.0.function这几个为false外,其他皆为true: 关于转换,等会我会再写一篇,专门讲string.int.Boolean转换. 短路运算的符号:    ||   &&  !  或与非 短路运算的原理:当有多个表达式时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值; 短路运算的规则: && 找假,先看第一个表达式的值,如果第一个表达式不是

Matlab基础学习--------关系和逻辑运算及多项式运算

直接给出实例,实例中包含知识点的讲解: %% 关系运算符 % < <= > >= == ~=(不等于) % 比较魔方矩阵中大学元素的值大于4 % 魔方矩阵:矩阵的每行每列和两条对角线上的和都相等 a=magic(3) %生成一个3*3的魔方矩阵 a>4*ones(3) %与全为4的矩阵进行比较 magic(6) %生成6*6的魔方矩阵 %运行结果: % a = % % 8 1 6 % 3 5 7 % 4 9 2 % ans = % % 1 0 1 % 0 1 1 % 0 1

逻辑运算和位运算

Java中负数的运算都是以补码的形式来进行的,而且一个运算如果结果是负数,要从补码转换成它的源码得到运算结果. 正数的源码.反码.补码是一样的 负数的反码是源码符号位不变,其他位取反,补码是反码加1 ~取反操作:将所有位数全部0变1,1变0,不过如果正数取反得到的是负数,那么负数要从补码转回源码才可以,比如2的源码是00000000000000000……0010,取反之后是111111111111111……111101,这样得到的是负数,所以要从补码转回源码,先转成反码,是补码减1,得到的是11