English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليميات C++ الأساسية

C++ 流程控制

وظائف C++

C++ 数组 & 字符串

C++ 数据结构

C++ 类 & 对象

المراجع الخاصة بـ C++

الوراثة الخاصة بـ C++

دليل C++ STL

دليل C++

دليل استخدامه وظيفة ilogb() في C++ ومثال

وظائف المكتبة الخاصة بـ C++ <cmath>

استخدام وظيفة ilogb() في C++ ومثال

استخدم دوال ilogb() في C++ FLT_RADIX كأساس للعقد، والعائد هو جزء الكامل من عقد | x |.هذا في<cmath>

محدد في ملف الرأس.

علمياً

x = متغير_النص_المراد_بها * FLT_RADIXexponent

متغير_النص_المراد_بها هو قيمة عائمة في نطاق [1.0,2.0)،و x هو المعامل الذي يتم تقديمه إلى ilogb()،و exponent هو القيمة الصحيحة التي يعودها ilogb().FLT_RADIX هو عادة 2.القيمة التي يعودها ilogb هي أكبر منfrexp

يكون المؤشر الذي يولده الدوال أقل بـ1 لأن عدد الأرقام الفعالة في نطاق [1.0،2.0] وليس frexp() في نطاق [0.5،1.0].

ilogb() النموذج [من معيار C++ 11 بدءاً]
ilogb(double x);
ilogb(float x);
ilogb(long double x);

ilogb(T x); // للنوع الكامل

تقبل وظيفة ilogb معامل، وهو العقد المحسوب.

عائد وظيفة ilogb

استخدم وظيفة ilogb FLT_RADIX كأساس للعقد، والعائد هو جزء الكامل من عقد | x |.

  • إذا كان المعامل 0، يتم العودة إلى FP_LOGB0.

  • إذا كان المعامل NaN، يتم العودة إلى FP_LOGBNAN.

  • إذا كان المعامل غير محدود، يتم العودة إلى INT_MAX.

مثال1: كيف يعمل دوال ilogb() في C++؟

#include <iostream>
#include <cmath>
#include <cfloat>
using namespace std;
int main()
{
    int result;
    double متغير_النص_المراد_بها;
    double x = 16.81;
    result = ilogb(x);
    متغير_النص_المراد_بها = x / pow(FLT_RADIX, result);
    cout << "ilogb (" << x << ") = " << result << endl;
    cout << x << " = " << significand << " * " << FLT_RADIX << " ^ " << result << endl << endl;
    return 0;
}

عند تشغيل هذا البرنامج، الناتج هو:

ilogb(16.81) = 4
16.81 = 1.05062 * 2^4

مثال2: وظيفة ilogb() مع نوع بيانات كامل

#include <iostream>
#include <cmath>
#include <cfloat>
using namespace std;
int main()
{
    int result, x = 19;
    result = ilogb(x);
    متغير_النص_المراد_بها = x/pow(FLT_RADIX,result);
    cout << "ilogb (" << x << ") = " << result << endl;
    cout << x << " = " << significand << " * " << FLT_RADIX << " ^ " << result << endl << endl;
    
    return 0;
}

عند تشغيل هذا البرنامج، الناتج هو:

ilogb (19) = 4
19 = 1.1875 * 2^4

وظائف المكتبة الخاصة بـ C++ <cmath>