当前位置:首页 > C++目录 > 正文内容

C++中的逻辑与运算

亿万年的星光3年前 (2022-09-13)C++目录1810
  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


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

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

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

    分享给朋友:

    相关文章

    图的访问与存储—临接表

    图的访问与存储—临接表

            在图论中,邻接表(Adjacency List) 是表示图(包括无向图、有向图、带权图)的一种高效数据结构,核心思想是为图中的每个顶点...

    C++小项目——实时钟表

    C++小项目——实时钟表

    0.前言在很多游戏中,我们要使用时间,这个时间一个是系统当前的时间,一个是服务器给你的时间。这篇文章我们尝试做一个模拟时钟。效果图如下1.任务分解1.首先我们尝试使用easyx来画一个。基本框架如下:...

    DEVC++中的断点调试

    DEVC++中的断点调试

    1.调试程序的两种方法编程的时候经常会遇到自己的输出结果跟标准结果或者预期的结果不一样,这个时候就要用到调试程序的功能。调试程序的目的有两个,一个是找出程序中的错误,另一个是监视变量的变化。2.DEV...

    图的遍历

    【题目描述】给出 N 个点,M 条边的有向图,对于每个点 v,求 A(v) 表示从点 v 出发,能到达的编号最大的点。【...

    【算法】单链表的一些操作(存取、查找、取出、插入、删除)

    一、单链表结构的建立与输出#include<iostream> using namespace std; struct Node{ int ...

    【算法】前缀和与差分(3)二维数组前缀和

    【算法】前缀和与差分(3)二维数组前缀和

    0.前言前面的一篇文章,介绍了一维数组的前缀和,这篇文章中,介绍一下二维数组的前缀和1.定义二维数组的前缀和就是按照二维数组求和。公式如下:那二维前缀和中一个f[i][j]表示的意思就是以(1,1)为...