C語言的abs()函數(shù)和div()函數(shù)你了解嗎
C語言庫中提供了許多函數(shù),這樣需要計算的時候,可以直接借助庫函數(shù),而不用自己重新編寫函數(shù)。今天就來看一下C語言標準庫函數(shù)里面的整型函數(shù)。
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函數(shù)用來計算整數(shù)的絕對值,它的參數(shù)就是待計算的整數(shù),返回值是計算后的絕對值。編寫一段簡單的代碼,演示一下這個函數(shù)的用法。
#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; }
定義一個正整數(shù),一個負整數(shù),然后用abs函數(shù)分別求絕對值,然后將計算的結(jié)果打印出來。
如果傳遞進去的數(shù)字不是整數(shù)的話,輸出的結(jié)果是什么呢?
向abs函數(shù)里面分別傳入一個正的浮點數(shù)和一個負的浮點數(shù),計算出來的結(jié)果依然是正整數(shù),說明傳遞參數(shù)后,abs函數(shù)會將傳入的參強制轉(zhuǎn)換為整數(shù),然后在進行計算。
labs函數(shù)的功能和abs函數(shù)的功能是一樣的,不過它主要用來計算長整數(shù)的絕對值。
div函數(shù)用來計算兩個數(shù)字相除的商和余數(shù),它有兩個參數(shù),用第一個參數(shù)(分子)除以第二個參數(shù)(分母),然后將商和余數(shù)存放在結(jié)構(gòu)體中,返回的結(jié)果是一個結(jié)構(gòu)體。它的結(jié)構(gòu)體定義如下:
typedef struct _div_t { int quot; int rem; } div_t; typedef struct _ldiv_t { long quot; long rem; } ldiv_t;
quot 是商,rem 是余數(shù)。下面通過一段代碼來,來演示一下這個函數(shù)的用法。
#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的商和余數(shù),輸出結(jié)果如下:
同樣負整數(shù)也可以使用這個函數(shù)進行計算。
ldiv函數(shù)的功能和div函數(shù)的功能一樣,不過它主要用來計算長整數(shù)的除法。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!
相關文章
c++中拷貝構(gòu)造函數(shù)的參數(shù)類型必須是引用
如果拷貝構(gòu)造函數(shù)中的參數(shù)不是一個引用,即形如CClass(const CClass c_class),那么就相當于采用了傳值的方式(pass-by-value),而傳值的方式會調(diào)用該類的拷貝構(gòu)造函數(shù),從而造成無窮遞歸地調(diào)用拷貝構(gòu)造函數(shù)。因此拷貝構(gòu)造函數(shù)的參數(shù)必須是一個引用2013-07-07C++實現(xiàn)LeetCode(312.打氣球游戲)
這篇文章主要介紹了C++實現(xiàn)LeetCode(312.打氣球游戲),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07C++中構(gòu)造函數(shù)與析構(gòu)函數(shù)的調(diào)用順序詳解
C++ 語言一直被批評太復雜了,很多細節(jié)的地方需要仔細推敲,甚至其構(gòu)造函數(shù)和析構(gòu)的調(diào)用順序也成為了一個讓人迷惑的問題,在此我做了簡單的總結(jié)。這篇文章主要介紹了C++中構(gòu)造函數(shù)與析構(gòu)函數(shù)的調(diào)用順序,需要的朋友可以參考借鑒。2017-01-01