对C、Java、Python等编程语言对正负整数取余运算的底层逻辑理解-创新互联

偶然遇到一个python取余运算的问题,不是很理解,于是查找了一些文章进行分析

创新互联建站是一家专注于成都网站制作、网站设计与策划设计,尼河口网站建设哪家好?创新互联建站做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:尼河口等地区。尼河口做网站价格咨询:18982081108

本文章参考    http://ceeji.net/blog/mod-in-real/   进行实例分析

直接引用结论

  1. 1.对于任何同号的两个整数,其取余结果没有争议,所有语言的运算原则都是使商尽可能小。

  2. 2.对于异号的两个整数,C++/Java语言的原则是使商尽可能大,很多python 等新型语言和网页计算器的原则是使商尽可能小

举例:

对C、Java、Python等编程语言对正负整数取余运算的底层逻辑理解

分析验证:

对于Python中,正负整数取余运算:

若除数,被除数同号:

1) 99 % 7         分解操作 => 7 * 14 + 1   , 商为 14 ,余数为 1      

          分解操作=> 7 * 15 +(-6),商为 15,余数为 -6

由开头的结论得知,python的计算原则是使商尽可能小,所以 取商 14 ,余数为 1

2)-99 % (-7) 分解操作 => -7* 14  +(-1),商为 14,余数为 -1

           分解操作 => -7*-15  +    6    ,商为 15,余数为 6

由开头的结论得知,python的计算原则是使商尽可能小,所以 取商 14 ,余数为 -1

若除数,被除数异号:

1) 99 % -7         分解操作 => -7 * (-14) +     1    , 商为 -14 ,余数为 1  

           分解操作 => -7 * (-15) +(-6),商为 -15,余数为 -6

由开头的结论得知,python的计算原则是使商尽可能小,所以 取商 -15 ,余数为 -6

2)-99 % 7          分解操作 => 7*(-14)+(-1),商为 -14,余数为 -1

           分解操作 => 7*(-15)+(6),商为 -15,余数为 6

由开头的结论得知,python的计算原则是使商尽可能小,所以 取商 -15 ,余数为 6

以上验证实验输出结果。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前标题:对C、Java、Python等编程语言对正负整数取余运算的底层逻辑理解-创新互联
本文URL:http://pwwzsj.com/article/dhgicg.html