C语言的abs()函数和div()函数你了解吗

 更新时间:2022年02月18日 17:09:26   作者:嵌入式@hxydj  
这篇文章主要为大家详细介绍了C语言的abs()函数和div()函数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

C语言库中提供了许多函数,这样需要计算的时候,可以直接借助库函数,而不用自己重新编写函数。今天就来看一下C语言标准库函数里面的整型函数。

  int __cdecl abs(int _X);
  long __cdecl labs(long _X);
  div_t __cdecl div(int _Numerator,int _Denominator);
  ldiv_t __cdecl ldiv(long _Numerator,long _Denominator);

abs函数用来计算整数的绝对值,它的参数就是待计算的整数,返回值是计算后的绝对值。编写一段简单的代码,演示一下这个函数的用法。

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
	int x1 = 56,x2 = -89;
	int y1,y2;
	y1 = abs(x1);
	y2 = abs(x2);
	printf("%d %d",y1,y2);
	return 0;
}

定义一个正整数,一个负整数,然后用abs函数分别求绝对值,然后将计算的结果打印出来。

image.png

如果传递进去的数字不是整数的话,输出的结果是什么呢?

image.png

abs函数里面分别传入一个正的浮点数和一个负的浮点数,计算出来的结果依然是正整数,说明传递参数后,abs函数会将传入的参强制转换为整数,然后在进行计算。

labs函数的功能和abs函数的功能是一样的,不过它主要用来计算长整数的绝对值。

div函数用来计算两个数字相除的商和余数,它有两个参数,用第一个参数(分子)除以第二个参数(分母),然后将商和余数存放在结构体中,返回的结果是一个结构体。它的结构体定义如下:

  typedef struct _div_t {
    int quot;
    int rem;
  } div_t;
  typedef struct _ldiv_t {
    long quot;
    long rem;
  } ldiv_t;

quot 是商,rem 是余数。下面通过一段代码来,来演示一下这个函数的用法。

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
	int x1 = 10,x2 =3;
	div_t ret;
	ret = div(x1,x2);
	printf("%d %d",ret.quot,ret.rem);
	return 0;
}

计算10 / 3的商和余数,输出结果如下:

image.png

同样负整数也可以使用这个函数进行计算。

image.png

ldiv函数的功能和div函数的功能一样,不过它主要用来计算长整数的除法。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!     

相关文章

  • C语言编程实例之输出指定图形问题

    C语言编程实例之输出指定图形问题

    这篇文章主要介绍了C语言编程实例之输出指定图形问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • C++ string和wstring相互转换方式

    C++ string和wstring相互转换方式

    这篇文章主要介绍了C++ string和wstring相互转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • C++统计软件使用时间代码示例

    C++统计软件使用时间代码示例

    这篇文章主要介绍了C++统计软件使用时间的小程序,大家可以参考使用
    2013-11-11
  • 详细分析C++ 异常处理

    详细分析C++ 异常处理

    这篇文章主要介绍了C++ 异常处理的的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • C++实现飞机大战

    C++实现飞机大战

    这篇文章主要为大家详细介绍了C++实现飞机大战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • c++栈内存和堆内存的基本使用小结

    c++栈内存和堆内存的基本使用小结

    本文主要介绍了c++栈内存和堆内存的基本使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • 解析C语言中如何正确使用const

    解析C语言中如何正确使用const

    本篇文章是对C语言中如何正确使用const,进行了详细的分析介绍。需要的朋友参考下
    2013-05-05
  • 详解C++ 拷贝构造函数和赋值运算符

    详解C++ 拷贝构造函数和赋值运算符

    本文主要介绍了拷贝构造函数和赋值运算符的区别,以及在什么时候调用拷贝构造函数、什么情况下调用赋值运算符。最后,简单的分析了下深拷贝和浅拷贝的问题。有需要的朋友可以看下
    2016-12-12
  • C++之编写高效Makefile文件最佳方法

    C++之编写高效Makefile文件最佳方法

    在软件开发过程中,Makefile是一个非常重要的工具,它可以帮助我们自动化构建、编译、测试和部署,然而,编写高效的Makefile文件并不是一件容易的事情。在本文中,我们将讨论如何编写高效的Makefile文件,以提高开发效率和产品质量,需要的朋友可以参考下
    2023-05-05
  • C++多线程编程超详解

    C++多线程编程超详解

    本文给大家介绍的是C++多线程编程,由于C++本身没有多线程机制,在windows下我们使用调用SDK win32 api来实现,示例都很简单,讲解的也很详细,推荐给大家
    2021-09-09

最新评论