当前位置: 首页 > article >正文

C语言中操作符详解(上)

C语言中操作符详解上

  • 放在最前面的
  • 1、算术操作符
    • (1.1)分类
    • (1.2)举例说明(上代码)
        • (a)+ (加法运算符)
            • 加法运算符的输出结果展示
        • (b)- (减法运算符)
            • 减法运算符的输出结果展示
        • (c)* (乘法运算符)
            • 乘法运算符的输出结果展示
        • (d)/ (除法运算符)
            • 除法运算符的输出结果展示1
            • 除法运算符的输出结果展示2
        • (e)% (取余/求模 运算符)
            • 取余/求模 运算符的输出结果展示
        • 总结:
  • 2、移位操作符
    • (2.1)补充:
    • (2.2)分类
    • (2.3)举例说明(上代码)
        • 左移
            • 原理图:
            • 运行结果:
        • 算术右移
            • 原理图:
            • 运行结果:
  • 3、位操作符(位是指的是 二进制位)
    • 提醒:
    • (3.1)分类(主要有三种)
    • (3.2)举例说明(上代码)
        • (a)按位 与
            • 原理图:
            • 运行结果:
        • (b)按位 异或
            • 原理图:
            • 运行结果:
        • (c)按位 或
            • 原理图:
            • 运行结果:
  • END

放在最前面的

🎈 🎈 我的CSDN主页:OTWOL的主页,欢迎!!!👋🏼👋🏼
🎉🎉我的C语言初阶合集:C语言初阶合集,希望能帮到你!!!😍 😍
👋🏼🎉🎊创作不易,欢迎大家留言、点赞加收藏!!! 🥳😁😍

1、算术操作符

(1.1)分类

1、+  (加法运算符) 
2、-  (减法运算符) 
3、*  (乘法运算符)
4、/  (除法运算符)
5、%  (取余/求模 运算符)

(1.2)举例说明(上代码)

(a)+ (加法运算符)
#include<stdio.h>

int main()
{
	//加法运算符
	int a = 0;
	a = 1 + 2;
	//输出
	printf("a = %d\n", a);

	return 0;
}

加法运算符的输出结果展示

(b)- (减法运算符)
#include<stdio.h>

int main()
{
	//减法运算符
	int a = 0;
	a = 20 - 10;
	//输出
	printf("a = %d\n", a);

	return 0;
}

减法运算符的输出结果展示

(c)* (乘法运算符)
#include<stdio.h>

int main()
{
	//减法运算符
	int a = 0;
	a = 20 - 10;
	//输出
	printf("a = %d\n", a);

	return 0;
}

乘法运算符的输出结果展示

(d)/ (除法运算符)
  • 代码1
#include<stdio.h>

//对于/操作符如果两个操作数都为整数,执行整数除法

int main()
{
	//除法运算符
	int a = 0;
	//对于 / 操作符如果两个操作数都为整数,执行整数除法
	a = 20 / 10;
	//输出
	printf("a = %d\n", a);

	return 0;
}

除法运算符的输出结果展示1

  • 代码2
#include<stdio.h>
 
//对于 / 操作符如果两个操作数只要有浮点数,执行的就是浮点数除法。

int main()
{
	//除法运算符
	float a = 0.0f;
	a = 20 / 10.0;
	//输出
	printf("a = %f\n", a);

	return 0;
}
除法运算符的输出结果展示2

(e)% (取余/求模 运算符)
#include<stdio.h>

int main()
{
	//(取余/求模 运算符)
	int a = 0;
	//% 操作符的两个操作数必须为整数。返回的是整除之后的余数。
	a = 20 % 11;
	//输出
	printf("a = %d\n", a);

	return 0;
}

取余/求模 运算符的输出结果展示

总结:

除了 %((取余/求模 运算符)操作符之外,其他的几个操作符(加法、减法、乘法和除法运算符) 可以作用于 整数 和 浮点数;


2、移位操作符

(2.1)补充:

🚀探索C语言里的数字魔法🔮 —— 二进制🔍、八进制🌈、十进制💰、十六进制✨,你想了解的都在这里!
点击下面的链接,一起揭开它们的神秘面纱吧!
🔗👉 C语言常见进制 (二进制、八进制、十进制、十六进制)详解 🚀

🎉 探索C语言神秘世界:原码、反码和补码大揭秘!🔍点击下面的链接,一起揭开它们的神秘面纱吧!
🔗👉 C语言原码、反码和补码的详解🚀

(2.2)分类

1、<< (左移操作符)
左边丢弃,右边补0


2、>> (右移操作符)
右移操作符可再分为两种

2.1、算术右移(常用的!编译器常采用的!)
右边丢弃,左边补原来的 符号位(正数 的符号位是 0,负数 的符号位是 1) 。
2.2、逻辑右移(不怎么用)
右边丢弃,左边直接补 0

(2.3)举例说明(上代码)

左移
#include<stdio.h>

int main()
{
	//定义一个整型变量 a,并进行赋值
	int a = 6;
	//输出 a 的值
	printf("a = %d\n", a);
	//整型变量 a 左移 一位
	a = a << 1;
	//输出 a 左移 一位的值
	printf("a << 1 = %d\n", a);

	return 0;
}
原理图:

运行结果:

算术右移
#include<stdio.h>

int main()
{
	//定义一个整型变量 a,并进行赋值
	int a = 6;
	//输出 a 的值
	printf("a = %d\n", a);
	//整型变量 a 算术右移 一位
	a = a >> 1;
	//输出 a 算术右移 一位的值
	printf("a >> 1 = %d\n", a);

	return 0;
}
原理图:

运行结果:

3、位操作符(位是指的是 二进制位)

提醒:

注:它们的操作数必须是整数。 也是针对二进制位(内存里的补码)进行计算的!

嘿小伙伴们!👋🏼 如果有人对C语言里的原码📜、反码🔄和补码🧩还感到一头雾水🤯,别急!😌 点击下面的链接🔗,让我们一起复习一下,把这些让人头疼的概念搞定吧!💪💡
C语言原码、反码和补码的详解
👋 如果有人对C语言里的常见进制(二进制🔍、八进制🌈、十进制🔟、十六进制🌟)还感到有点儿懵🤔,别害羞!赶紧点击下面的链接🔗,我们一起把这几个进制的小秘密揭开吧!🔍✨

C语言常见进制 (二进制、八进制、十进制、十六进制)详解

(3.1)分类(主要有三种)

位操作符 符号含义运算规则
1、&按位与对应的 二进制位有0,则为0,两个同时为1,才为1。
2、^按位 异或对应的 二进制位:相同为0,相异为1

3、 符号: |
含义: 按位 或(由于编辑器的原因,在表格上显示不了)
运算规则: 对应的二进制位 有1,则为1;两个同时为0,才为0。

(3.2)举例说明(上代码)

(a)按位 与
#include<stdio.h>

int main()
{
	//定义一个整型变量 a,并进行赋值
	int a = 6;
	//定义一个整型变量 b,并进行赋值
	int b = 1;
	//变量 a 和 变量 b 进行按位与操作,并将结果赋值给整型变量 ret
	int ret = a & b;
	//输出 a & b 的结果 ret
	printf("a & b = %d\n", ret);

	return 0;
}
原理图:

运行结果:

(b)按位 异或
#include<stdio.h>

int main()
{
	//定义一个整型变量 a,并进行赋值
	int a = 6;
	//定义一个整型变量 b,并进行赋值
	int b = 1;
	//变量 a 和 变量 b 进行按位 异与操作,并将结果赋值给整型变量 ret
	int ret = a ^ b;
	//输出 a ^ b 的结果 ret
	printf("a ^ b = %d\n", ret);

	return 0;
}
原理图:

运行结果:

(c)按位 或
#include<stdio.h>

int main()
{
	//定义一个整型变量 a,并进行赋值
	int a = 6;
	//定义一个整型变量 b,并进行赋值
	int b = 1;
	//变量 a 和 变量 b 进行按位 与操作,并将结果赋值给整型变量 ret
	int ret = a | b;
	//输出 a | b 的结果 ret
	printf("a | b = %d\n", ret);

	return 0;
}
原理图:

运行结果:

END

每天都在学习的路上!
On The Way Of Learning

“文章已读完📖,你是不是也和我一样有很多感触呢😃?无论是对文章内容的评价👍、建议🙌,还是你自己的相关经历故事📝,都可以毫不犹豫地在评论区留言哦😘。你的每一条留言都是对我最大的支持和鼓励💪,也会让这个交流空间更加丰富多彩🌈🎉!”


http://www.kler.cn/a/389058.html

相关文章:

  • C++中的栈(Stack)和堆(Heap)
  • 大语言模型:解锁自然语言处理的无限可能
  • HarmonyOS 如何实现传输中的数据加密
  • 深入理解接口测试:实用指南与最佳实践5.0(一)
  • SciPy:Python 科学计算工具包的全面教程
  • stringUtils详细解释
  • 【云原生开发】K8S集群管理后端开发设计与实现
  • [C++] GDB的调试和自动化检测
  • 计算机课程管理:Spring Boot与工程认证的协同
  • BIST(Built-in Self-Test,内建自测试)学习笔记
  • 项目功能--套餐预约占比饼形图
  • SQL注入(SQL Injection)详解
  • 十大经典排序算法-冒泡算法详解介绍
  • Linux下进程链接结构,命令行参数,环境变量
  • 【论文阅读】Learning dynamic alignment via meta-filter for few-shot learning
  • Django替换现有用户模型(auth_user)
  • 《潜行者2切尔诺贝利之心》游戏引擎介绍
  • Jest项目实战(2): 项目开发与测试
  • 鸿蒙next版开发:ArkTS组件快捷键事件详解
  • 密码学知识点整理二:常见的加密算法
  • c语言中的柔性数组
  • 【css flex 多行均分有间隙布局】
  • 小白学习之路:咖啡叶锈病分割
  • 105. UE5 GAS RPG 搭建主菜单
  • MySQL缓存参数如何优化与表结构如何优化才算是最大性能的优化
  • 6层板设计常用知识笔记