如何在bash中获得mod的结果的正号
发布时间:2020-12-15 21:49:22 所属栏目:安全 来源:网络整理
导读:当天真地在bash中使用mod命令时,残差会在负分子中得到错误的符号(在我看来): 如果我写: for i in {-5..5}; do echo $(( $i % 3 )) ; done 我得到输出(作为一行) -2 -1 0 -2 -1 0 1 2 0 1 2 我如何实现“正确”的行为 1 2 0 1 2 0 1 2 0 1 2 解决方法 我知
当天真地在bash中使用mod命令时,残差会在负分子中得到错误的符号(在我看来):
如果我写: for i in {-5..5}; do echo $(( $i % 3 )) ; done 我得到输出(作为一行) -2 -1 0 -2 -1 0 1 2 0 1 2 我如何实现“正确”的行为 1 2 0 1 2 0 1 2 0 1 2 解决方法
我知道这是一个老问题,但不是循环,直到结果为正或启动perl或python考虑以下内容:
我在{-5..5};回声$(((($i%3)3)%3)); DONE 这将导致OP的期望输出. 这是因为第一个模将结果带到-3到3的范围,加3,导致结果在0到6的范围内,然后我们可以再次执行模数(加3对此没有影响). 一般来说:mod =((a%b)b)%b (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |