美文网首页
c++ 3、运算符(较难运算符)

c++ 3、运算符(较难运算符)

作者: 八戒无戒 | 来源:发表于2020-04-26 01:17 被阅读0次

1、位运算

p q p&q p|q p^q
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

a   =  0 0 1 1 1 1 0 0 [60]
b   =  0 0 0 0 1 1 0 1 [13]
a&b =  0 0 0 0 1 1 0 0 [12]
a|b   =  0 0 1 1 1 1 0 1 [61]
a^b  =  0 0 1 1 0 0 0 1 [49]
~a    =  1 1 0 0 0 0 1 1 [-61]
a>>2=  0 0 0 0 1 1 1 1 [15]
a<<2=  1 1 1 1 0 0 0 0 [240]

2、运算符
/*A    = 0011 1100   
B    = 0000 1101
A&B  = 0000 1100    与
A|B  = 0011 1101        或
A^B  = 0011 0001    异或
~A   = 1100 0011    反
A<<2 = 1111 0000    右移,空位补0
A>>2 = 0000 1111        左移,空位补0
sizeof              返回数据类型所占用空间的字节数
condition?x:y       三目
->                  成员运算符,运用于类成员
&                   指针运算符,指向变量的地址
*                   指针运算符,指向变量的值
++                  自增
--                  自减
&&                  全真即真
||                  有真为真
!                   真假反转
*/
#include "pch.h"
#include <iostream>
#include <stdio.h>
using namespace std;
int a = 0b00111100;
int b = 0b00001101;
int main()

{
    printf("a 的原值 = %d,b的原值 = %d\n", a, b);
    printf("a&b      = %d\n", a&b);
    printf("a|b      = %d\n", a|b);
    printf("a^b      = %d\n", a^b);
    printf("~a       = %d\n", ~a);
    printf("a>>2     = %d\n", a>>2);
    printf("a<<2     = %d\n", a<<2);
    return 0;
}

运算结果过如下:

a 的原值 = 60,b的原值 = 13
a&b = 12
a|b = 61
a^b = 49
~a = -61
a>>2 = 15
a<<2 = 240

2、杂项运算符
condition?x:y:三目运算符,条件为真值为x,条件为假值为y
sizeof:返回变量类型所占的字节大小
&:指针运算符,指向变量的地址
*:指针运算符,指向变量的值
++:自增,x++先引用再加1,++x先加1再引用
--:自减,x--先引用再减1,++x先减1再引用

#include "pch.h"
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    int a = 5, *p = &a;
    int c;
    double d;
    int e;
    c = a > 6 ? 500 : 1000;                //5>6为假,所以c的值取后者
    printf("%d\n", c);   

    e = sizeof(d);                        //double类型占8字节
    printf("%d\n", e);

    *p = 20;                              //此时a的值已经变为20
    printf("%d\n",a);
    printf("%d\n",a++);                   //先引用再+1
    printf("%d\n",++a);                   //先+1再引用
    return 0;
}

运行结果如下:

1000
8
20
20
22

相关文章

  • c++ 3、运算符(较难运算符)

    1、位运算 pqp&qp|qp^q00000010111001111110 a   =  0 0 1 1 1 ...

  • C++运算符重载-下篇 (Boolan)

    C++运算符重载-下篇 (Boolan) 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符...

  • C++运算符重载-上篇 (Boolan)

    C++运算符重载-上篇 (Boolan) 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符...

  • C++运算符

    C++中的运算符包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、其它运算符,算术运算符中“+”“-”...

  • 第十一章 使用类

    运算符重载 运算符重载是一种形式的C++多态。运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。...

  • C++ 运算符重载

    运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。实际上,很多C++运算符已经重载。将*运算符用...

  • 1.2.17_C++ ++ 和 -- 运算符重载

    C++ 重载运算符和重载函数 递增运算符( ++ )和递减运算符( -- )是 C++ 语言中两个重要的一元运算符...

  • C++基础学习笔记5 - 运算符

    运算符?加、减、乘、除? 简单的说:C++ 运算符只有:条件运算符、关系运算符、逻辑运算符、数学运算符、位运算符、...

  • 第二章 基本运算符

    swift支持c++大部分运算符,包括算术运算符(+,-,*,/,%),赋值运算符(=),组合赋值运算符(+=,-...

  • C++中不能重载的运算符

    在C++中,sizeof运算符,.成员运算符,.*成员指针运算符,::作用域解析运算符以及?:条件运算符不能被重载...

网友评论

      本文标题:c++ 3、运算符(较难运算符)

      本文链接:https://www.haomeiwen.com/subject/gakrwhtx.html