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

算术运算符指南

目录

一、算术运算符概述

二、加法(+)和减法(-)运算符

三、乘法(*)运算符

四、除法(/)运算符

整数除法

浮点数除法

常见陷阱示例

五、取模(%)运算符

基本用法

负数取模规则

六、重要注意事项


一、算术运算符概述

C语言提供了一组基本的算术运算符用于数学计算,包括:

  • + 加法

  • - 减法

  • * 乘法

  • / 除法

  • % 取模(求余)

        这些运算符都是双目运算符,需要两个操作数。注意:操作符(operator)和运算符(operator)是同义词,只是翻译不同。


二、加法(+)和减法(-)运算符

#include <stdio.h>int main() 
{int x = 4 + 22;  // 加法运算int y = 61 - 23; // 减法运算printf("%d\n", x); // 输出26printf("%d\n", y); // 输出38return 0;
}


三、乘法(*)运算符

#include <stdio.h>int main() 
{int num = 5;printf("%d\n", num * num); // 输出25return 0;
}


四、除法(/)运算符

除法运算有整数除法浮点数除法两种形式:

整数除法

当两个操作数都是整数时,执行整数除法(截断除法),结果会舍弃小数部分。

#include <stdio.h>int main() 
{float x = 6 / 4;    // 实际执行的是整数除法int y = 6 / 4;      // 整数除法printf("%f\n", x);  // 输出1.000000printf("%d\n", y);  // 输出1return 0;
}

浮点数除法

至少有一个操作数是浮点数时,执行浮点数除法。

#include <stdio.h>int main() 
{float x = 6.0f / 4;  // 浮点数除法printf("%f\n", x);   // 输出1.500000return 0;
}

常见陷阱示例

#include <stdio.h>int main() 
{int score = 5;score = (score / 20) * 100;  // 结果为0,因为5/20=0// 修正方案score = (score / 20.0) * 100; // 使用浮点数除法return 0;
}

        你以为运算结果是25,但实际上score却等于0。这是因为score/20执行的是整数除法,结果会取整为0,再乘以100自然还是0。要得到预期结果,只需将除数20改为20.0,这样就会进行浮点数除法。


五、取模(%)运算符

取模运算符返回两个整数相除后的余数,只能用于整数运算

基本用法

#include <stdio.h>int main() 
{printf("%d\n", 6 % 4);  // 输出2return 0;
}

负数取模规则

取模运算结果的正负号由第一个操作数决定:

#include <stdio.h>int main() 
{printf("%d\n", 11 % -5);   // 输出1printf("%d\n", -11 % -5);  // 输出-1printf("%d\n", -11 % 5);  // 输出-1return 0;
}


六、重要注意事项

  1. 整数除法会直接截断小数部分,不会四舍五入

  2. 除数为0会导致运行时错误

  3. 取模运算只能用于整数类型

  4. 混合类型运算时会自动进行类型转换

  5. 运算符优先级:*/% > +-

http://www.xdnf.cn/news/17443.html

相关文章:

  • 如何用分析方法解决工作中的问题?
  • Day11 原理篇
  • 滚动条开始滚动时,左侧导航固定,当左侧内容触底到footer时左侧内容取消固定并跟随滚动条滚动
  • 【Python 小脚本·大用途 · 第 2 篇】
  • 女子试穿4条裤子留下血渍赔50元引争议:消费责任边界在哪?
  • 【星闪】Hi2821 | UART通用异步收发器 + 串口中断收发例程
  • 【人工智能99问】BERT的原理什么?(23/99)
  • 开启单片机
  • 编程基础之多维数组——矩阵交换行
  • 【YOLOv8改进 - C2f融合】C2f融合Outlook Attention:将细粒度特征编码到 token 中, 提高在图像分类和语义分割等任务中的性能
  • 【算法题】:斐波那契数列
  • 【Python】常用内置模块
  • 安全运维工具链全解析
  • Android快速视频解码抽帧FFmpegMediaMetadataRetriever,Kotlin(2)
  • 大模型开发工具的汇总
  • SQL Server从入门到项目实践(超值版)读书笔记 23
  • cursor, vscode黄色波浪线警告问题
  • 从零到精通:嵌入式BLE开发实战指南
  • 计算机网络:(十四)传输层(下)详细讲解TCP报文段的首部格式,TCP 可靠传输的实现与TCP 的流量控制
  • Mybatis和MybatisPlus的对比区分理解法
  • 基于 RabbitMQ 死信队列+TTL 实现延迟消息+延迟插件基本使用
  • 给AI装上“翻译聚光灯”:注意力机制的机器翻译革命
  • Docker 镜像常见标签(如 `标准`、`slim`、`alpine` 和 `noble`)详细对比
  • 编程基础之字符串——统计数字字符个数
  • TypeScript 中的as const是什么?
  • React:useEffect 与副作用
  • token危机解决?扩散模型数据潜力3倍于自回归,重训480次性能仍攀升
  • 浏览器CEFSharp88+X86+win7 之多页面展示(四)
  • LLaMA-Adapter Efficient Fine-tuning of Language Models with Zero-init Attention
  • Redis - 使用 Redis HyperLogLog 进行高效基数统计