English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يعود frexp(x, exp) في C++ بجزء العدد والنسبة لعدد عشري.
مقام العدد الثنائي هو عدد عشري، يكون قيمته الإجمالية بين [0.5،1]، والمقام الكامل هو 2.
يتم تنفيذ هذه الوظيفة في<cmath>محدد في ملف الرأس.
علمياً
x = Binary significand * 2^exponent
حيث يتم تخزين النسبة في مكان exp، ومقام العدد الثنائي هو القيمة التي يعود بها frexp().
double frexp(double x, int* exp); float frexp(float x, int* exp); long double frexp(long double x, int* exp); double frexp(T x, int* exp); //للمتغيرات الصغيرة
frexp() لديه معاملتان، ويعود بـ double،float أو long double.
x -القيمة التي سيتم تحليلها.
exp -إشارة إلى نطاق يحتوي على قيمة النسبة.
frexp() يعود بجزء العدد، الذي يكون قيمته الإجمالية بين [0.5،1]. إذا كان x صفرًا، فإن القيمة الإجمالية والنسبة تكون كلاهما صفرًا.
الم 参数 (x) | مقام العدد الثنائي | النسبة |
---|---|---|
0 | 0 | 0 |
x >= 1 | إيجابي | إيجابي |
x <= -1 | سالب | إيجابي |
-1 < x < 0 | سالب | سالب |
0 < x < 1 | إيجابي | سالب |
#include <iostream> #include <cmath> using namespace std; using namespace std; int main () double x = 6.81, significand; int *exp; significand = frexp(x, exp); significand = frexp (x , exp); cout << x << " = " << significand << " * 2^" << *exp << endl; return 0;
}
6.81 = 0.85125 * 2^3
#include <iostream> #include <cmath> using namespace std; using namespace std; int main () { double significand; int *exp, x = 25; significand = frexp (x , exp); cout << x << " = " << significand << " * 2^" << *exp << endl; return 0;
}
عند تشغيل هذا البرنامج، الناتج هو: