IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言 -- 操作符 -> 正文阅读

[C++知识库]C语言 -- 操作符

算数操作符

取余
+-*/%

1.除了取余%操作符外,其他的操作符可以作用于整数和浮点数;
2.对于除/操作符,如果两个操作数都为整数,则执行整数除法;而操作数只要有浮点数执行的就是浮点数除法;
3.取余%操作符的两个操作数必须为整数,返回的是整除之后的余数。

#include<stdio.h>

void main()
{
	int a = 3, b = 2;
	double c = 1.5;

	printf("a + b = %d\n", a + b);   //5
	printf("a - b = %d\n", a - b);	 //1
	printf("a * b = %d\n", a * b);	 //6
	printf("a / b = %d\n", a / b);	 //1
	printf("a %% b = %d\n", a % b);	 //1
									  
	printf("a + c = %.2f\n", a + c);  //4.50
	printf("a - c = %.2f\n", a - c);  //1.50
	printf("a * c = %.2f\n", a * c);  //4.50
	printf("a / c = %.2f\n", a / c);  //2.00
}

移位操作符

左移右移
<<>>

左移操作符移位规则:

左边抛弃,右边补0;

右移操作符移位规则:
右移运算分为两种:

1.逻辑移位,左边用0填充,右边丢弃;
2.算术移位,左边用原该值的符号位填充,右边丢弃。
如果操作数是无符号数即是逻辑移位,如果操作数是带符号数,是算术移位。

代码示例:

正整数a左移n位的值为(a*(2^n));
正整数a右移n位的值为(a/(2^n));

#include<stdio.h>

void main()
{
	int a = 10;
	//0000 0000 0000 0000 0000 0000 0000 1010
	//0000 0000 0000 0000 0000 0000 0010 1000 -- 左移
	//0000 0000 0000 0000 0000 0000 0000 0010 -- 右移
	printf("%d\n", a << 2); //40
	printf("%d\n", a >> 2); //2

	//算数右移
	int b = -10;
	//补码1111 1111 1111 1111 1111 1111 1111 0110
	//补码1111 1111 1111 1111 1111 1111 1101 1000 -- 左移
	//原码1000 0000 0000 0000 0000 0000 0010 1000 -- 左移
	//补码1111 1111 1111 1111 1111 1111 1111 1101 -- 右移
	//原码1000 0000 0000 0000 0000 0000 0000 0011 -- 右移
	printf("%d\n", b << 2); //-40
	printf("%d\n", b >> 2); //-3
}

位操作符

按位与按位或按位异或
&|^

其操作数必须位整数

代码示例:

#include<stdio.h>

void main()
{
	int num1 = 1;
	int num2 = 2;
	//1--0000 0000 0000 0000 0000 0000 0000 0001
	//2--0000 0000 0000 0000 0000 0000 0000 0010

	int x = num1 & num2; //0
	int y = num1 | num2; //3
	int z = num1 ^ num2; //3
	printf("%d  %d  %d", x, y, z);
}

赋值操作符

符号表达式含义
=a = 10将10赋给a
+=a += 10a = a+10
-=a -= 10a = a-10
*=a *= 10a = a*10
/=a /= 10a = a/10
%=a %= 10a = a%10
>>=a >>= 10a = a>>10
<<=a <<= 10a = a<<10
&=a &= 10a = a&10
|=a |= 10a = a|10
^=a ^= 10a = a^10

单目操作符

符号含义符号含义
逻辑取反~按位取反
-负值- -自减
+正值++自增
&取地址*间接访问操作符(解引用操作符)
(类型)强制类型转换sizeof操作数的类型长度(以字节为单位)

注意:sizeof是操作符,可以求变量(类型)所占空间的大小

前++或前- -后++或后- -
先自增或自减再进行其他运算先进行其他运算后再自增或自减

关系操作符

符号含义
>大于
>=大于等于
<小于
<=大于
!=用于测试“不相等”
==用于测试“相等”

在编程过程中注意==与=的使用

逻辑操作符

逻辑与逻辑或
&&||

对于按位操作符和逻辑操作符要加以区分
逻辑操作符会返回一个布尔值

代码示例:

#include<stdio.h>

void main()
{
	printf("1&&2 = %d\n", 1 && 2); //1
	printf("1&2 = %d\n", 1 & 2); //0

	printf("1||2 = %d\n", 1 || 2); //1
	printf("1|2 = %d\n", 1 | 2); //3
}

逻辑与&&与逻辑或||都是短路操作符;
当逻辑与&&的第一个操作数为假时便不再往后执行,结果必为假;
当逻辑或||的第一个操作数为真时便不再往后执行,结果必为真。

代码示例:

#include<stdio.h>

void main()
{
	int i = 0, a = 0,b = 2,c = 3, d = 4;
	i = a++ && ++b && d++;
	printf("i=%d\n", i); //0
	printf("a=%d\n", a); //1
	printf("b=%d\n", b); //2
	printf("c=%d\n", c); //3
	printf("d=%d\n", d); //4
}

条件操作符

exp1 ? exp2 : exp3
当exp1为真时,结果为exp2;否则结果为exp3
#include<stdio.h>

void main()
{
	int a = 6;
	int b;

	if (a < 5)
	{
		b = 3;
	}
	else
	{
		b = -3;
	}
	printf("b = %d\n", b); //-3

	//上述if-else语句可以用条件操作符实现
	int c;
	c = (a < 5) ? 3 : -3;
	printf("c = %d\n", c); //-3
}

逗号表达式

exp1, exp2, …, expN

用逗号隔开多个表达式,从左向右依次执行;
整个表达式的结果时最后一个表达式的结果。

代码示例:

#include<stdio.h>

void main()
{
	int a = 1;
	int b = 2;
	int c = (a > b, a = b + 10, a, b = a + 1);
	printf("c = %d\n", c); //13

	int d = -3;
	if (a = b + 1, c = a / 2, d > 0) //d<0,所以执行else
	{
		printf("真\n");
	}
	else
	{
		printf("假\n"); //将会输出这句
	}
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-17 12:34:54  更:2021-11-17 12:36:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:18:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码