首页 > 编程语言 >C++运算符

C++运算符

时间:2023-10-26 19:35:56浏览次数:32  
标签:操作数 cout int C++ 运算符 赋值

C++运算符

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++内置了丰富的运算符,并提供了以下类型的运算符:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 杂项运算符

算术运算符

下表显示了C++支持的所有算术运算符。假设变量A = 10;B = 20,则:

运算符 描述 实例
+ 把连个操作数相加 A+B=30
- 从第一个操作数中减去第二个操作数 A-B=-10
* 把两个操作数相乘 A*B=200
/ 分子除以分母 B/A=2
% 取模运算符,整除后的余数 B%A=0
++ 自增运算符,整数值增加1 A++将得到11
-- 自减运算符,整数值减少1 A--将得到9

实例:

#include<iostream>
using namespace std;
int main(){
	int a = 20; 
	int b = 10;
	int c;
	c = a + b;
	cout<<"Line 1 - c:"<<c<< endl;
	c = a - b;
	cout<<"Line 2 - c:"<<c<< endl;
	c = a/b;
	cout<<"Line 3 - c:"<<c<<endl;
	c = a*b;
	cout<<"Line 4 - c:"<<c<<endl;
	c = a % b;
	cout<<"Line 5 - c:"<<c<<endl;
	c = a ++;
	cout<<"Line 6 - c:"<<c<<endl;
	c = a --;
	cout<<"Line 7 - c:"<<c<<endl;
	return 0;
	
}

结果显示:

关系运算符

下表显示了关系运算符。假设A = 10, B = 20;则:

运算符 描述 实例
== 检查两个操作数的值是否相等,如果相等则条件为真 (A==B)不为真
!= 检查两个操作数的值是否相等,如果不相等则条件为真 (A!=B)为真
> 检查左操作数的值是否大于右操作数,如果是则条件为真 (A>B)不为真
< 检查左操作数的值是否小于右操作数的值,如果是则条件为真 (A<B)为真
>= 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真 (A>=B)不为真
<= 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真 (A<=B)为真

实例:

#include<iostream>
using namespace std;

int main(){
	int a = 21;
	int b = 10;
	int c;
	if (a == b){
		cout<<"Line  1 - a = b"<<endl;
	}
	else{
		cout<<"Line 2 - a != b"<<endl;
	}
	if(a < b){
		cout << "Line 3 - a < b"<<endl;
	
	}
	else{
		cout<<"Line 4 - a is not smaller than b"<<endl;
	}
	a = 5;
	b = 20;
	if(a <= b){
		cout<<"Line 5 - a <= b" <<endl;
	}
	if (b >= a){
		cout<<"Line 6 - b >= a"<<endl;
	}
	return 0;
}

结果显示:

逻辑运算符

下表显示了C++支持的所有逻辑运算符,假设变量A = 1, 变量B = 0,则:

运算符 描述 实例
&& 逻辑与运算符,如果两个操作数都非零,则条件为真 (A&&B)不为真
| 逻辑或运算符,如果两个操作数中有任意一个非零,则条件为真
称为逻辑非运算符。用来逆转操作数的逻辑状态,如果条件为真,则逻辑非运算符将使其为假 !(A&&B)为真

实例:

#include<iostream>
using namespace std;
int main(){
	int a = 5;
	int b = 20;
	int c;
	if(a && b){
		cout<<"Line 1 - the contain is True "<<endl;
		
	}
	if(a||b){
		cout<<"Line 2 - the contain is True"<<endl;
	}
	a = 0;
	b = 10;
	if(a && b){
		cout<<"Line 3 - the contain is True"<<endl;
		
	}
	else{
		cout<<"Line 4 - the contain is False"<<endl;
	}
	
	if (!(a&&b)){
		cout<<"Line 5 - the contain is True"<<endl;
	}
	return 0;
}   

位运算符

位运算符作用于位,并逐位执行操作。&、|和^的真值表如下:

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

假设A= 60B= 13现在以二进制格式表示,如下所示:

A= 00111100
B= 00001101
A & B = 00001100
A|B = 00111101
A^B = 00110001
~A = 1100 0011

下表显示C++支持的位运算符。假设A=60, B=13, 则:

运算符 描述 实例
& 如果同时存在于两个操作数中,二进制AND运算符复制一位到结果中 (A&B)将得到12,即为0000 1100
| 如果存在于任一操作数中,二进制OR运算符复制一位到结果中 (A|B)将得到61,即为00111101
^ 如果存在于其中一个操作数中单不同时存在于两个操作数中,二进制异或运算符复制一位到结果中 (A^B)将得到49,即为00110001
~ 二进制补码运算符是一元运算符,具有翻转位效果 (A~B)将得到-61,即为0011000011,2的补码形式,带符号的二进制数
<< 二进制左移运算符。左操作数的值向左移动右操作数指定的位数 A<<2将得到240,即为11110000
>> 二进制右移动运算符。左操作数的值向右移动右操作数指定的位数 A>>2将得到15,即为00001111

实例:

#include<iostream>
using namespace std;

int main(){
	unsigned int a = 60;
	unsigned int b = 13;
	int c = 0;
	c = a&b;
	cout<<"Line 1 - c:"<<c<<endl;
	c = a|b;
	cout<<"Line 2 - c:"<<c<<endl;
	c = a^b;
	cout<<"Line 3 - c:"<<c<<endl;
	c = ~a;
	cout<<"Line 4 - c:"<<c<<endl;
	c = a << 2;
	cout<<"Line 5 - c:"<<c<<endl;
	c = a >> 2;
	cout<<"Line 6 - c:"<<c<<endl;
	return 0;
}

结果显示:

赋值运算符

下表列出了C++支持的赋值运算符:

运算符 描述 实例
= 简单的赋值运算符,把右边操作数的值赋给左边的操作数 C= A+B将把A+B的值赋给C
+= 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C+=A相当于C=C+A
-= 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 C-=A相当于C=C-A
*= 乘且复制运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 C=A相当于C=CA
/= 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 C/A相当于C=C/A
%= 求模且赋值运算符,求两个操作符的模赋值给左边操作符 C%=A相当于C=C%A
<<= 左移且赋值运算符 C<<=2等同于C=C<<2
>>= 右移且赋值运算符 C>>=2等同于C=C>>2
&= 按位与且赋值运算符 C&=2等同于C=C&2
^= 按位异或且赋值运算符 C=2等同于C=C2
|= 按位或且赋值运算符 C|=2等同于C=C|2

实例:

#include<iostream>
using namespace std;
int main(){
	int a = 21;
	int c;
	c = a;
	cout<<"Line 1 - = , c = "<< c <<endl;
	c += a;
	cout <<"Line 2 - +=, c = "<<c<<endl;
	c -=a;
	cout << "Line 3 - -=, c = "<<c<<endl;
	c *= a;
	cout<<"Line 4 - *=, c = "<<c<<endl;
    c /= a;
    cout<<"Line 5 - /=, c = "<<c<<endl;
    c = 200;
    c %= a;
    cout <<"Line 6 - %=, c = "<<c<<endl;
    c <<= 2;
    cout <<"Line 7 - <<=, c = "<<c<<endl;
    c >>= 2;
    cout <<"Line 8 - >>=, c = "<<c<<endl;
    c ^= 2;
    cout<<"Line 9 - ^=, c = "<<c<<endl;
    c |= 2;
    cout <<"Line 10 - |=, c = "<<c<<endl;
    return 0;
    	
	
}

结果显示:

标签:操作数,cout,int,C++,运算符,赋值
From: https://www.cnblogs.com/bonne-chance/p/17790035.html

相关文章

  • 逻辑运算符 && 和 || 的短路特性
    ⛩️博主主页:@威化小餅干......
  • murmurhash64B c# 实现 c++ 实现
    c#实现:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespacegjh.utility{publicclassMurmurHash64B{publicstaticulongMakeHashValue(byte[]key,uintseed=0xee6b27eb){......
  • C++ 与 QML 之间进行数据交互的几种方法
    一、属性绑定这是最简单的方式,可以在QML中直接绑定C++对象的属性。通过在C++对象中使用Q_PROPERTY宏定义属性,然后在QML中使用绑定语法将属性与QML元素关联起来。person.h#include<QObject>classPerson:publicQObject{Q_OBJECT/*使用Q_PROPERTY定义交......
  • C# 运算符 ?、??、?: 、?. 、各种问号的用法和说明
    1.可空类型修饰符(?)引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。例如:stringstr=null;是正确的,inti=null;编译器就会报错。为了使值类型也可为空,就可以使用可空类型,即用可空类型修饰符"?"来表示,表现形式为"T?"例如:int?表示可空的整形,DateTime?表示可为......
  • c++中的继承(下)
    首先我们先回忆一下,在派生类(子类)中默认的成员函数做了什么事情?我们现在可以这么认为对于普通类来说呢?只需要看待两个部分的成员:内置类型和自定义类型。而对于派生类而言序言看待三个部分的成员:内置类型,自定义类型以及父类类型构造和析构拷贝构造普通类对于内置类型一般不处理,自定类......
  • C++修饰符类型
    C++允许在char、int和double数据类型前放置修饰符。修饰符用于改变基本类型的含义,所以它更能满足各种情境的需求。当前有以下几种数据类型修饰符:signedunsignedlongshort修饰符signed、unsigned、long和short可应用于整型,signed和unsigned可应用于字符型,long可应用于双精度......
  • 【每日例题】 蓝桥杯 c++ 考勤刷卡
    考勤刷卡题目小蓝负责一个公司的考勤系统,他每天都需要根据员工刷卡的情况来确定每个员工是否到岗。当员工刷卡时,会在后台留下一条记录,包括刷卡的时间和员工编号,只要在—天中员工刷过—次卡,就认为他到岗了。现在小蓝导出了—天中所有员工的刷卡记录,请将所有到岗员工的员工......
  • 现代C++语言核心特性解析 谢丙堃​ 2021年pdf电子版
    现代C++语言核心特性解析2021年pdf电子版作者: 谢丙堃出版年: 2021-10ISBN: 9787115564177连接提取码:ckop自从C++11发布,就没有系统学习C++的书,也很久没有看国内作者出的C++书籍了。市面上对于现代C++的书很少,这是一本讲述现代C++11~C++20的书。意外,写得不错,容易理解,难得是除了......
  • C++中vector容器详解
    参考链接:https://www.runoob.com/w3cnote/cpp-vector-container-analysis.html一、什么是vector?向量(Vector)是一个封装了动态大小数组的顺序容器(SequenceContainer)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。二......
  • 引用C++程序,在DOS命令行打印彩色玫瑰花
    python代码:fromctypesimport*importpygameimportrandomimportstringimporttimeif__name__=='__main__':withopen('log.txt','rb')asf:lines=f.readlines()count=0forlineinlines:......