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

C++和Python中负数取余结果的区别

  1. C++中的负数取余规则(取模%)规则
  • 在C++中,取余运算( % )的结果符号与被除数相同。
  • 从数学定义角度看,C++遵循的是尽量让商向零取整的规则。例如计算 -7/3,商是 -2 (向零取整),然后根据公式:被除数 = 除数×商+余数 来计算余数,即 -7 = 3×(-2)+(-1) ,所以余数为 -1 。
cout<<7%3<<endl;	// 1	7=3*2+1,余数是:1
cout<<7%-3<<endl;	// 1	7=-3*(-2)+1,余数是:1
cout<<-7%3<<endl;	// -1	-7=3*(-2)-1,余数是:-1
cout<<-7%-3<<endl;	// -1	-7=-3*(-2)-1,余数是:-1
  1. Python中的负数取余(取模%)规则
  • Python中的取模运算结果符号与除数相同,并且保证结果在 [0, 除数 - 1] 这个区间内。
  • 从数学定义角度看,Python遵循的是使商尽可能小(向下取整)的规则。例如计算 -7/3 ,商是 -3 (向下取整),然后根据公式 被除数 = 除数×商+余数 来计算余数,即 -7 = 3×(-3)+2 ,所以余数为 2 。
print(7%3)	# 1		因为:7=3*2+1
print(7%-3)	# -2	因为:7=-3*(-3)-2
print(-7%3)	# 2		因为:-7=3*(-3)+2
print(-7%-3)# -1	因为:-7=-3*2-1
  1. 总结区别
    总的来说,C++ 和 Python 对于负数取余运算,核心区别在于余数符号遵循的规则不同。C++ 让余数符号和被除数相同,而 Python 让余数符号和除数相同,这就导致同样的负数取余操作在两种语言中往往会得出不一样的结果,在实际编程过程中,需要特别留意这一差异,避免出现不符合预期的逻辑错误。

http://www.mrgr.cn/news/83080.html

相关文章:

  • Ubuntu 下载安装 kibana8.7.1
  • 《Armv8-A virtualization》学习笔记
  • NLP CH3复习
  • 在Linux中,如何查看和修改网络接口配置?
  • unity学习14:unity里的C#脚本的几个基本生命周期方法, 脚本次序order等
  • RK3568-ubuntu旋转显示和触摸
  • python中的列表推导式详解
  • Django学习笔记之数据库(一)
  • 使用redis来进行调优有哪些方案?
  • 消息队列:原理、问题与设计全解析
  • Git撤销指定commit并更新远端仓库
  • 最近在盘gitlab.0.先review了一下docker
  • 总结2024,迎接2025
  • 江科大STM32入门——SPI通信笔记总结
  • leetcode热门100题1-4
  • 生成模型:变分自编码器-VAE
  • 导航技术的分类
  • 创建型模式-原型模式
  • MySQL笔记大总结20250108
  • GDPU Android移动应用 重点习题集
  • 联邦学习LoRA:推理合并权重公式:以及变体
  • uni-app 资源引用(绝对路径和相对路径)方法汇总
  • 【网络协议】开放式最短路径优先协议OSPF详解(四)
  • 25/1/4 算法笔记<强化学习> 生成对抗模仿学习
  • 【C语言】_指针与数组
  • “深入浅出”系列之FFmpeg:(1)音视频开发基础