C语言编程深入理解取整取余取模问题示例分析

yizhihongxing

C语言编程深入理解取整取余取模问题示例分析

什么是取整、取余、取模?

在C语言中,/ 可以用来进行整除(取整)操作,% 可以用来进行取余或取模操作。

当两个整数相除时,如果能够整除,则结果即为商;否则,结果则包括商和余数,其中商为取整结果,而余数则为取余或取模的结果。

  • 取整:将一个浮点数四舍五入或向下取整成整数,例如:
int a = 5.6 / 2; // a的值为2,5除以2的结果为2.5,向下取整即为2.
  • 取余:也叫“求余数”,即进行除法运算后得到的余数。例如:
int b = 5 % 2; // b的值为1,5除以2的余数为1.
  • 取模:也叫“求模”,与取余有些类似,但是处理负数时有不同的结果(C语言中可正可负)。例如:
int c = -5 % 2; // c的值为-1,-5对2取模的结果是-1,即-5 = n * 2 -1,其中n为-3.

示例1:取整

对于取整操作,我们需要注意一些细节,例如:

#include <stdio.h>

int main()
{
    int a = 5.6 / 2; // 分子和分母都是整数类型,需要注意会进行整除操作
    double b = 5.6 / 2; // 取整操作需要使用浮点数类型
    double c = (double)5 / 2; // 或者将分子中的一个数字强制转换为浮点数类型
    printf("a = %d, b = %g, c = %g", a, b, c);
    return 0;
}

输出结果为:

a = 2, b = 2.8, c = 2.5

从结果来看,如果将分子和分母都定义为整数类型,则无论使用取整还是取余,都会进行整除操作;而如果使用浮点数类型则可以正确地进行取整操作。

示例2:取余,取模

对于取余和取模操作,我们同样需要注意一些细节,例如:

#include <stdio.h>

int main()
{
    int a = 5 % 2; // 余数为1
    int b = -5 % 2; // 余数为-1
    int c = -5 % -2; // 余数为-1
    int d = 5 % -2; // 余数为1
    int e = (5 + ((5 >> 31) & 1) * 2) % 3; // 余数为0(绕开负数余数问题)
    printf("a = %d, b = %d, c = %d, d = %d, e = %d", a, b, c, d, e);
    return 0;
}

输出结果为:

a = 1, b = -1, c = -1, d = 1, e = 0

从结果来看,取余和取模操作的结果都可以正确计算,但是负数的情况需要特别注意,需要使用上面的绕开负数余数问题的方式进行处理。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言编程深入理解取整取余取模问题示例分析 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • 关于protected修饰符详解-源于Cloneable接口

    下面就来详细讲解一下“关于protected修饰符详解-源于Cloneable接口”的完整攻略。 1. protected修饰符的作用 protected 修饰符用于类的成员变量,方法及构造方法,可以让子类访问并修改原本属于父类的该成员变量、方法及构造方法。在同一个包中的其他类中,也可以访问 protected 成员。 2. protected修饰符的使用限…

    other 2023年6月27日
    00
  • ModelAndView的介绍

    ModelAndView是Spring Boot框架中的一个类,用于将数据和视图封装到一起,返回给前端页面。在本文中,我们将详细介绍ModelAndView的作用和使用方法,并提供两个示例说明。 ModelAndView的作用 ModelAndView的作用是将数据和视图封装到一起,返回给前端页面。在Spring Boot框架中,我们可以使用ModelAnd…

    other 2023年5月5日
    00
  • 好人共享的一个万能Ghost系统制作教程附相关软件下载

    好人共享的一个万能Ghost系统制作教程 一、下载相关软件 Ghost系统镜像文件:从好人共享或官方网站下载 U盘制作工具rufus:从官方网站下载 二、制作U盘启动盘 将U盘插入电脑,运行rufus。在程序界面中选择对应的ISO镜像文件,并确认U盘的正确路径。可以在选项中进行一些基础设置,如分区类型、文件系统等等。 点击开始制作按钮,等待制作完成。 示例说…

    other 2023年6月27日
    00
  • Element Dialog对话框的使用示例

    Element Dialog对话框的使用示例攻略 Element Dialog是一个常用的对话框组件,用于在网页中展示弹出式的对话框。下面是一个详细的攻略,包含了Element Dialog的使用示例和说明。 步骤一:引入Element UI库和样式 首先,确保你已经引入了Element UI库和样式。你可以通过以下方式在你的HTML文件中引入它们: &lt…

    other 2023年7月28日
    00
  • 6招为智能abc输入法提速 输入大写金额再也不用愁啦

    6招为智能ABC输入法提速 输入大写金额再也不用愁啦 简介 智能ABC输入法是一款智能化的输入法工具,可以帮助用户快速输入大写金额。本攻略将介绍6个技巧,帮助您更高效地使用智能ABC输入法。 技巧一:使用快捷短语 智能ABC输入法支持设置快捷短语,可以将常用的大写金额词组设置为快捷短语,以便快速输入。例如,您可以将\”一百元\”设置为快捷短语\”100元\”…

    other 2023年8月18日
    00
  • Ext面向对象开发实践代码第1/2页

    Ext面向对象开发实践代码攻略 简介 \”Ext面向对象开发实践代码\”是一本关于使用Ext框架进行面向对象开发的实践指南。本攻略将详细讲解该书的内容,并提供两个示例说明。 第1/2页内容概述 第1/2页主要介绍了以下内容: Ext框架简介:介绍了Ext框架的特点和优势,以及它在面向对象开发中的应用。 Ext的基本概念:解释了Ext中的一些基本概念,如组件、…

    other 2023年7月27日
    00
  • 右键多余菜单怎么清掉?删除右键多余菜单

    清除右键多余菜单是很多电脑用户常需要的操作,本文将详细讲解清除右键多余菜单的方法。通过下面的步骤,您可以轻松删除不必要的右键菜单。 一、利用注册表删除右键多余菜单 按下“Win + R”键打开“运行”对话框,输入“Regedit”并按下“确定”键,打开注册表编辑器。 针对当前用户:定位到 HKEY_CURRENT_USER\Software\Classes\…

    other 2023年6月27日
    00
  • android H5本地缓存加载优化的实战

    这里提供一份Android H5本地缓存加载优化的实战攻略,步骤如下: 1. 分析H5页面 首先,我们需要对H5页面进行深入地分析,了解其元素和资源,并确定哪些是可以本地缓存的。可以通过浏览器的开发者工具来实现,例如Chrome浏览器的开发者工具可以通过“Network”标签页来查看当前页面中加载的所有资源。将这些资源分为两类:一类是不可缓存的,例如一些动态…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部