mod函数详解

 

 我们知道,mod函数是一个求余函数,其格式为:
mod(nExp1,nExp2),即是两个数值表达式作除法运算后的余数。那么:两个同号整数求余与你所知的两个正数求余完全一样(即两个负整数与两个正整数的算法一样)。
一、两个异号整数求余
1.函数值符号规律(余数的符号)
mod(负,正)=正
mod(正,负)=负
结论:两个整数求余时,其值的符号为除数的符号。
2.取值规律
先将两个整数看作是正数,再作除法运算
①能整除时,其值为0
②不能整除时,其值=除数×(整商+1)-被除数
例:mod(36,-10)=-4
即:36除以10的整数商为3,加1后为4;其与除数之积为40;再与被数之差为(40-36=4);取除数的符号。

所以值为-4。
二、两个小数求余
取值规律:被除数-(整商×除数)之后在第一位小数位进行四舍五入。
例:mod(9,1.2)=1
即:9除1.2其整商为7;7与除数1.2之积为8.4;8.4四舍五入之后为8;被除数9与8之差为1。故结果为1。
例:mod(9,2.4)=0
即:9除2.2其整商为4;4与除数2.2这积为8.8;8.8四舍五入之后为9;被除数9与9之差为0。故结果为0。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
epoll_ctl函数是用来向epoll实例中添加、修改或删除文件描述符的,其函数原型如下: ```c int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event); ``` 其中,epfd是epoll实例的文件描述符,op指定操作类型,可以是EPOLL_CTL_ADD、EPOLL_CTL_MOD或EPOLL_CTL_DEL,fd是需要添加、修改或删除的文件描述符,event是一个epoll_event结构体,用来描述需要监听的事件类型和其他信息。 EPOLL_CTL_ADD操作用于向epoll实例中添加新的文件描述符,如果fd已经存在于epoll实例中,则会返回错误。event结构体中需要填写的字段包括: - events:需要监听的事件类型,可以是EPOLLIN、EPOLLOUT、EPOLLRDHUP、EPOLLPRI或EPOLLERR等。 - data:用户自定义数据,可以是任意类型的指针。 EPOLL_CTL_MOD操作用于修改已经存在于epoll实例中的文件描述符的监听事件类型和用户自定义数据。event结构体中需要填写的字段同EPOLL_CTL_ADD操作。 EPOLL_CTL_DEL操作用于从epoll实例中删除文件描述符,event可以为NULL。 需要注意的是,在使用epoll_ctl函数添加或修改文件描述符时,需要将文件描述符设置为非阻塞模式,否则可能会出现阻塞的情况。 下面是一个使用epoll_ctl函数添加文件描述符的例子: ```c int epoll_fd = epoll_create(10); // 创建epoll实例 struct epoll_event ev; ev.events = EPOLLIN | EPOLLET; // 监听读事件,使用ET模式 ev.data.fd = fd; // 需要监听的文件描述符 if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, fd, &ev) == -1) { perror("epoll_ctl"); exit(EXIT_FAILURE); } ``` 这段代码将fd添加到epoll实例中,并监听其读事件,使用ET模式。如果添加失败,则输出错误信息并退出程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值