C/C++中取余数运算%是如何实现的?

C/C++中取余数运算%是如何实现的?时间复杂度是怎样的?能否举例?... C/C++中取余数运算%是如何实现的?时间复杂度是怎样的?能否举例? 展开
 我来答
风中微子都fdd
2018-07-06 · TA获得超过2967个赞
知道答主
回答量:74
采纳率:100%
帮助的人:1.2万
展开全部

 对于整型数a,b来说,取余运算的%方法是:

1.求整数商: c = a/b;

2.计算模或者余数: r = a - c*b.

求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0 方向舍入;而取模运算在计算c的值时,向负无穷方向舍入。

所谓向0方向舍入,就是以小数点为界限,直接将小数部分去掉。如(Int)-1.324=-1(亦叫截断法);

而向负无穷方向舍入,就是最终结果比真实值更小。如(Int)-1.324=-2;(Int此处是强制转换数据类型)注意c是指商;

时间复杂度 :

在刚才提到的时间频度中,n称为问题的规模,当n不断变化时,时间频度T(n)也会不断变化。但有时我们想知道它变化时呈现什么规律。为此,我们引入时间复杂度概念。

拓展资料

  1. 余数,数学用语。在整数的除法中,只有能整除与不能整除两种情况。当不能整除时,就产生余数,取余数运算:a mod b = c(b不为0) 表示整数a除以整数b所得余数为c,如:7÷3 = 2 ······1。

  2. 余数指整数除法中被除数未被除尽部分,且余数的取值范围为0到除数之间(不包括除数)的整数。例如:27除以6,商数为4,余数为3。

  3. 一个数除以另一个数,要是比另一个数小的话,商为0,余数就是它自己。例如:1除以2,商数为0,余数为1;2除以3,商数为0,余数为2。

的月起7t7
2012-12-17 · TA获得超过640个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:241万
展开全部
A Mod B = A-(A div B) * B (div含义为整除);

例如:11 %2 = 11 - (11 /2)*2 = 1;

//由于这里只是进行了一条语句的运算,所以时间复杂度为常数阶O(1);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
discovery522
2015-06-11 · TA获得超过4713个赞
知道大有可为答主
回答量:2308
采纳率:71%
帮助的人:1489万
展开全部
A Mod B = A-(A div B) * B (div含义为整除);

6/2=3 余数是0 对吧 那么 6%2=0
7/3=2 余数是1 7%3=1
9/4=2 余数是1 9%4=1
15/4=3 余数是3 15%4=3
29/9=3 余数是2 29%9=2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
厦门欣中特科技
2012-12-17 · TA获得超过142个赞
知道答主
回答量:135
采纳率:0%
帮助的人:98万
展开全部
如果是pc的话是用专门的电路实现的。
你想问的情况应该是那种不支持乘除运算的电路上执行,比如某些单片机。做余数的算法时间复杂度也就是做除法的时间复杂度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
恶灵的加护
2012-12-17 · TA获得超过969个赞
知道小有建树答主
回答量:492
采纳率:0%
帮助的人:488万
展开全部
整数的除法和取余是一起进行的。
在机器计算的时候,比如 a 除于 b,最后结果商和余都会各存放在一个寄存器当中。
C当中的两个运算只是各取所需,算法细节楼主可以去看下有关汇编的内容。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式