24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1302  |  回复: 4

铭晟2650

银虫 (小有名气)

[求助] c++中的负数求模问题

请教一下这个怎么解释?
 10%3   输出1
 10%-3    1
-10%3    -1
-10%-3   -1
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

文俊点点

木虫 (著名写手)

【答案】应助回帖

★ ★
jjdg(金币+2): 感谢应助 2011-05-31 00:27:29
10%3=1这就不用解释了。
10%-3=1编译时按照倍数来的,不区分正负的,都按正的算。
但被求模的数是有正负的,模不会有负的。
这是你所拥有的时间·····这是你所能改变的生活·········
2楼2011-05-30 23:40:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

铭晟2650

银虫 (小有名气)

引用回帖:
Originally posted by 文俊点点 at 2011-05-30 23:40:04:
10%3=1这就不用解释了。
10%-3=1编译时按照倍数来的,不区分正负的,都按正的算。
但被求模的数是有正负的,模不会有负的。

那后面两个怎么解释?  是否可以这样理解:求模是不分正负,而求模的结果的正负和被求模的数相同?
3楼2011-05-31 12:44:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huycwork

金虫 (著名写手)

【答案】应助回帖

★ ★
微尘、梦想(金币+2): 谢谢参与应助,鼓励交流! 2011-05-31 20:25:15
这个是不被移植的。没必要解释和理解。
按照数学的模定义,a=b*c+d,b>d>0就是模,也就是说负数的模也将是正数,负数对负数的模还是正数,这实际上就要求a-b*c>0,这个等式对于任意的a和b而言,取适当的c即可解。
但是有些程序员总有一些奇怪的想法,比如-1%2,,并且希望模会是负数,-1%-2时又希望是正数,简而言之,就是希望除法的规则延续到求模运算,但是如果把模规定为正负,a-b*c=d就会出现两个解,这样就更麻烦了。所以如果你的模运算出现了负数,那你就得怀疑这个模是否和你希望的定义一致,或者说,根本不用负数参与求模。
漩涡的中心有一块空地,空空的。
4楼2011-05-31 13:09:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

文俊点点

木虫 (著名写手)

【答案】应助回帖


jjdg(金币+1): 感谢参与 2011-06-01 01:38:56
铭晟2650(金币+2): 谢谢你的解答 2011-06-02 22:04:42
引用回帖:
Originally posted by 铭晟2650 at 2011-05-31 12:44:59:
那后面两个怎么解释?  是否可以这样理解:求模是不分正负,而求模的结果的正负和被求模的数相同?

你可以这么理解,也可以参考其他人的·········
如果深入的话可以看看在汇编中是怎么解释的,只是使用不用不用这么复杂。
这是你所拥有的时间·····这是你所能改变的生活·········
5楼2011-05-31 16:46:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 铭晟2650 的主题更新
信息提示
请填处理意见