haskell中 mod 与 rem 的区别

Haskell中,quot是整数除法,rem是整数余数,满足特定等式。div是整数除法向负无穷大截断,mod则是整数模量。rem直接舍去小数,mod则向下取整。在正数时两者取余相同,负数时取整规则相反。举例说明了rem和mod在负数情况下的不同。
摘要由CSDN通过智能技术生成
  • 取整方式

    1. quot 是整数除法截至零

    2. rem 是整数余数,满足:(x quot y)*y + (x rem y) == x

  • 取余方式

    1. div 是整数除法向负无穷大截断

    2. mod 是整数模量,满足:(x div y)*y + (x mod y) == x




|| div 和 quot 的区别
div向下取整(无穷小),而quot向零取整(0方向,正数向下取整,负数向上取整)

|| rem 和mod 的区别 是求余与求模的区别。
例如:(-20) / 3 = -6.66666… ,rem直接舍去小数得 -6,余数为(-20)-( 3 * (-6)) = -2;
mod 向下取整得-7,然后得到余数:(-20)- (3 * (-7)) = 1;
在这里插入图片描述

总结:取余方式的rem 和 mod 之间的差异源于于其取整方式的区别(div/quot),在正数是有一样的取整规则(向下),而在负数时有相反的取整规则(向上)





|| 示例

--当使用负数作为第二个参数并且结果不为零时,可以看出差异:
5 `mod` 3 == 2
5 `rem` 3 == 2

5 `mod` (-3) == -1
5 `rem` (-3) == 2

(-5) `mod` 3 == 1
(-5) `rem` 3 == -2

(-5) `mod` (-3) == -2
(-5) `rem` (-3) == -2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值