c语言中整除和模除的优先级,整除运算与取模运算

本文详细介绍了C语言中整除和取模运算的原理和应用,包括周期性问题、整除与取模的差异、计算星期几的方法以及如何用取模计算十二生肖等。通过实例展示了整除如何降低分辨率,取模如何转换值域,并提供了计算特定日期星期几的算法。
摘要由CSDN通过智能技术生成

凡是呈现明显周期性的,比如十二生肖(以十二为周期),比如星期(以 7 为周期),比如天干(以 10 为周期),比如地支(以 12 为周期),最佳的解决方案就是取模(或者简单地说对该周期取余数)。

两个整数间能够整除(余数为 0)的全部意义正在于 ⇒ 实现均分;

10 个小朋友,两两分组,共分 5 组;

10 个小朋友,55分组,共分 2 组;

在比如质数个小朋友(如 7 个),就没办法实现均匀的分配人数了;

在 C语言的环境下,将一个整数对 2 不断地做整除:

0/2 ⇒ 0, 1/2 ⇒ 0

2/2 ⇒ 1, 3/2 ⇒ 1,

4/2 ⇒ 2, 2/2 ⇒ 1

5/2 ⇒ 2, 2/2 ⇒ 1

也即除了 0/1 之外的任何正整数,不论是奇数还是偶数,不断地对 2 整除的最终结果都会是 1;

15/2 = 7 /2 = 3 /2 =1

1. 截断低位与抹除高位

如果一个数(二进制形式 n 位)对 2k 整除和取模:

(1)整除是截断低位(k),保留高位(n-k);

(2)取模运算是抹除最高比特位(要求 k = n-1);

不妨以 10(1010) 和 8(1000) 为例:

(1)整除:10/8 == 1

(2)取模:10%8 == 010 == 2

2. 整除:降低分辨率,取模运算:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值