基础问题1:

needknowledge 2003-09-13 10:20:56
14%(-4)=2
(-14)%(-4)=-2

这个怎么解释
...全文
72 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyongf 2003-09-13
  • 打赏
  • 举报
回复
在C语言中这绝对是错误的,=是赋值运算符,表达式不能被赋值。
needknowledge 2003-09-13
  • 打赏
  • 举报
回复
我基本上同意取决于 分子的符号,哪里有相关的资料?
scpzhwang 2003-09-13
  • 打赏
  • 举报
回复
偶认为结果的符号取决于被模数的符号。
(-14)%4=-2
呵呵,不一定对,我也只是初学者。
Anders911 2003-09-13
  • 打赏
  • 举报
回复
注意,模运算取整数除法的余数。
aflyinghorse 2003-09-13
  • 打赏
  • 举报
回复
%计算两个数相除的余数,该操作符只能被用在整值类型上
当两个操作数都为正,结果为正。但是有一个或两个为负,
余数的符号取决于机器,因此可移植性无法保证
如21 % -5 //机器相关,结果为1或-1
njtu 2003-09-13
  • 打赏
  • 举报
回复
同意 steedhorse(晨星) ( )
晨星 2003-09-13
  • 打赏
  • 举报
回复
C标准中没有规定对负数进行模运算的结果,标准只是规定要满足对于整数,要满足:
a = a / b * b + a % b;
deadcode 2003-09-13
  • 打赏
  • 举报
回复
TC3.0编译的
deadcode 2003-09-13
  • 打赏
  • 举报
回复
取决于被除数吧
#include<iostream.h>
int main()
{
cout<<(-14)%(-4)<<endl;
cout<<(-14)%4<<endl;
cout<<14%(-4)<<endl;
return 0;
}
输出
-2
-2
2
dragonlw 2003-09-13
  • 打赏
  • 举报
回复
和机器的性质有关吧
superlinglin128 2003-09-13
  • 打赏
  • 举报
回复
C标准中没有对负数进行模运算的结果,标准只是规定要满足对于整数的模运算
但分母可以是负的。当分母是负的时,把它当作正数的
scpzhwang 2003-09-13
  • 打赏
  • 举报
回复
楼上的,你可以运行一下试试.
zhangwendi 2003-09-13
  • 打赏
  • 举报
回复
负数不可以吧
scpzhwang 2003-09-13
  • 打赏
  • 举报
回复
偶认为结果的符号取决于被模数的符号。
比如(-14)%4 输出结果是-2
呵呵,不一定对,我也只是初学者。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧