温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-08-29 08:04:30 来源:网络 阅读:387 作者:龙翔九天dl 栏目:编程语言

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

本文章参考    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

 

以上验证实验输出结果。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI