关于Python3与Swift“%”运算符不同特性小记

在用Swift写算法的时候发现自己用Python3写的正常运行的算法代码,使用Swift复刻后无论如何都有数据上的错误,仔细研究才发现是Python3和Swift的“%”运算符的实现效果并不完全相同,做个笔记。

虽然两种语言在正数上的余运算结果相同但负数运算却相差甚远。

//Python3
num = -10
num %= 4
print(num)
//运算结果为 2
//Swift
var num = -10
num %= 4
print(num)
//运算结果为 -2

虽然看起来Python3是取绝对值后再进行运算得出2,而Swift是对值运算完后取负但实际上不是如此。

//Python3
num = -5
num %= 4
print(num)
//运算结果为 3
//Swift
var num = -5
num %= 4
print(num)
//运算结果为 -1

Python3的"%"运算实际效果是-5 -%运算-> -1 -与被余数相加-> 3
而Swift则是-5 -%运算-> -1
不知道自己有没有理解错误。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容