C语言_“/”和“%”运算符详解

本文详细解析了C语言中的除法运算符“/”与取模运算符“%”。介绍了这两种运算符的基本使用方法及注意事项,包括取模运算的结果如何受到被除数符号的影响等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言_“/”和“%”运算符详解:

除法运算符"/":

    二元运算符,具有左结合性。参与运算的量均为整型时,结果为整型,舍去小数。如果运算量中有一个为实型,结果为双精度实型。除号的正负取舍和一般的算数一样,符号相同为正,相异为负。例如:

    5/2=2,1/2=0
    5/2.0=2.5   

取模运算符"%":

    二元运算符,具有左结合性。参与运算的量均为整型。并且参与运算的量可以为负数。取模运算的结果等于两个数相除后的余数。

    例如:5%2=1,1%2=1

          5%2.0和5.0%2//error C2297: “%”: 非法,右操作数包含“double”类型

          int a = 23%-3;//a = 2

          int b = -23%3;//b = -2//注明:求余符号的正负取舍和被除数符号相同


    当前面的数小于后面的数时,其实求余运算可以看成(如下),如果a<b的话,这样的商为0,余数就是a

    a%b=a-(int)(a/b)*b 
    1%2=1 
    2%5=2 
    a % b 

这个关系表达式a%b == a-(int)(a/b)*b 是这么解释的:先运算(a/b)然后a-((a/b的值)乘以b) 


例1. 50%2
     50除以2=25
     结果为整数,则取值为0 (原因就是50除以2的值是整数,余数为0) 
例2. 7%2
     7除以2=3.5
     则还是用3乘以2=6
     再用7-6,结果就是余数 1


C语言中,任意一个正整数对1求余结果为0还是1?是0,如24%1=0

注意:

Java中的/和C、C++中的/在计算结果、正负判断上是相同的;Java中的%虽然在结果的正负判断上和C、C++中是相同的,但是Java中的%的操作数允许小数出现,但是C、C++中却规定参与运算的量必须为整数。

      Java: System.out.println(5.5%1.0);     //right//0.5

 C++: cout<<5.5%1.0<<endl;                 //error

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

博士僧小星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值