首页 > 试题

整除符号

更新时间:2022-11-15 06:53:10 阅读: 评论:0

美术音乐中考讲义-降的多音字


2022年11月15日发(作者:圆脸适合的短发图片)

带符号整数的除法与余数

复习C++Prime4th的时候,看见书上对/和%操作符有以下描述:

Forbothdivision(/)andmodulus(%),whenbothoperandsarepositive,theresultispositive(orzero).Ifbothoperands

arenegative,theresultofdivisionispositive(orzero)andtheresultofmodulusisnegative(orzero).Ifonlyone

operandisnegative,nisalsomachine-

dependentformodulus;thesignisnegative(orzero)fordivision:

21%6;//ok:resultis3

21%7;//ok:resultis0

-21%-8;//ok:resultis-5

21%-5;//machine-dependent:resultis1or-4

21/6;//ok:resultis3

21/7;//ok:resultis3

-21/-8;//ok:resultis2

21/-5;//machine-dependent:result-4or-5

这段隐晦难懂的⽂字结合代码转换成表格后依然让⼈难以理解:

aba/ba%b

>0>0>=0,取值可唯⼀确定>=0,取值可唯⼀确定

<0<0>=0,取值可唯⼀确定<=0,取值可唯⼀确定

>0<0<=0,取值由实现决定符号和取值均由实现决定

<0>0<=0,取值由实现决定符号和取值均由实现决定

于是我下载了C++Prime4th出版时C++最新版本(C++03)的ISO标准⽂档,在章节5.6Multiplicativeoperators下找到了如下叙

述:

Thebinary/operatoryieldsthequotient,andthebinary%operatoryieldstheremainderfromthedivisionofthefirst

econdoperandof/or%iszerothebehaviorisundefined;otherwi(a/b)*b+a%bis

operandsarenonnegativethentheremainderisnonnegative;ifnot,thesignoftheremainderis

implementation-defined.

也就是说对于整数除法和取余,C++03只确保以下两点:

(a/b)*b+a%b=a(b!=0)。

a%b>=0(a>=0&&b>0)。

在经典和标准的描述中,都指出了余数的符号,却没有提及更容易让⼈理解的取整⽅法。

为此,我根据数学意义上的公式“商×除数+余数=被除数”做出了不同取整⽅法下,a和b的符号与a%b的符号的对应图:

根据这些图表,从取整⽅法的⾓度,可以得出以下结论:

标准:在操作数均为正数时向下取整(此时也是向零取整),其余情况由实现决定。

经典:在操作数符号相同时向下取整(此时也是向零取整),异号情况由实现决定。

经典与标准对操作数均为负数时描述的不⼀致让我迷惑,莫⾮是作者的⼀时疏忽?然⽽当我在C++Prime5th中的相应章节找到以下叙述

时顿感纳闷:

Inadivision,anonzeroquorversions

ofthelanguagepermittedanegativequotienttoberoundedupordown;thenewstandardrequiresthequotienttobe

roundedtowardzero(i.e.,truncated).

“早期的语⾔标准允许负数商向上取整或向下取整”这⼀句岂不是暗⽰在操作数符号相同时取整⽅法是有明确规定的?

也许是n连错了两次?

另外,C++11中已经规定,整数除法⼀律采⽤向零取整:

Forintegraloperandsthe/operatoryieldsthealgebraicquotientwithanyfractionalpartdiscarded(Thisisoften

calledtruncationtowardszero.);

这⼀点在上述的C++Prime5th的叙述中也有提到。

本文发布于:2022-11-15 06:53:10,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/22726.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:比结合能
下一篇:五分之四
标签:整除符号
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图