当前位置:首页 > C++知识 > 正文内容

C++中的逻辑与运算

亿万年的星光3年前 (2022-09-13)C++知识1498
  1. 样例


#include<iostream>
using namespace std;
int main(){
	cout<<(1&1)<<endl; //1 
	cout<<(1&-1)<<endl; // 1 
	cout<<(-1&-1)<<endl; //-1 
	cout<<(-2&-3)<<endl; //-4 
	return 0;
}


2.解释

 1&1:

      1    0000 0001  

      &   

      1    0000 0001  

-----------------------

      1    0000 0001   


 1&-1:

     

    

     1    0000 0001  

      &   

     -1   1111 1111  (补码)

-----------------------

      1    0000 0001   


解释:1的补码是1111 1111,然后进行逻辑与运算即可。


 -1&-1:

     

    

     -1   1111 1111  (补码)

      &   

     -1   1111 1111  (补码)

-----------------------

           1111 1111   


解释:负数和负数的逻辑与运算比较特殊。

-1 & -1 的直接结果是1111 1111,出符号位以外,剩下111 1111

然后把最低位减一得: 111 1110

然后按位取反得: 000 0001, 也就是1

加上符号就是-1,所以最后结果是-1


 -2&-3:


     -2   1111 1110 (补码)

      &   

     -3   1111 1101  (补码)

-----------------------

           1111 1100   


解释:

-2 & -3 的直接结果是1111 1100  ,出符号位以外,剩下111 1100

然后把最低位减一得: 111 1011

然后按位取反得: 000 0100, 也就是4

加上符号就是-1,所以最后结果是-4


同理,逻辑或运算也是一样的

扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

【数据结构】栈(Stack)的介绍

栈是只能在某一端插入和删除的特殊线性表。栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一端称栈底。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表(LIF...

DEVC++中的快捷键

快捷键可以帮我们加快速度,下面介绍一下我们经常用的快捷键。 Ctrl+A   全选Ctrl +C   复制Ctrl +V   粘贴...

【题解】组合数学

【题解】组合数学

一、排列与组合口诀:有序排列,无序组合,分类相加,分步相乘。1.排列数公式:表示的含义是从n个数中选出m个进行排队,有多少种不同的排法。从n个不同的元素中任取m(m≤n)个元素的所有排列的个数,叫做从...

NOIP/CSP-J复赛历年考点

2000计算器的改良税收与补贴乘积最大单词接龙模拟、字符串模拟字符串、动态规划广度优先bfs、字符串2001数的计数最大公约数与最小公倍数求先序排列装箱问题模拟模拟、函数二叉树贪心2002级数求和选数...

【题解】最短路径问题

【题目描述】平面上有n个点(n≤100),每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。现...

如何判断回文数/回文串

所谓回文,就是从左往右读和从右往左读都是一样的,这样的数字或者字符称为回文数/回文字符。做题的时候经常能看到判断回文操作。判断回文的一般有两种,一种是数字类型,一种是字符类型。两种分别介绍一下。一、回...