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

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

تحكم في عملية C++

وظيفة C++

مجموعات C++ & 字وعات

هياكل بيانات C++

مفاهيم C++ & الكائنات

المؤشرات C++

وراثة الوصول C++

Vector C++ (العدادات)

دليل C++

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

25 = 0.78125 * 2^5

يعود frexp(x, exp) في C++ بجزء العدد والنسبة لعدد عشري.

مقام العدد الثنائي هو عدد عشري، يكون قيمته الإجمالية بين [0.5،1]، والمقام الكامل هو 2.

يتم تنفيذ هذه الوظيفة في<cmath>محدد في ملف الرأس.

علمياً

x = Binary significand * 2^exponent

حيث يتم تخزين النسبة في مكان exp، ومقام العدد الثنائي هو القيمة التي يعود بها frexp().

frexp() نموذج [بداية من معيار C++ 11]

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.

معاملات frexp()

  • x -القيمة التي سيتم تحليلها.

  • exp -إشارة إلى نطاق يحتوي على قيمة النسبة.

مخرجات frexp()

frexp() يعود بجزء العدد، الذي يكون قيمته الإجمالية بين [0.5،1]. إذا كان x صفرًا، فإن القيمة الإجمالية والنسبة تكون كلاهما صفرًا.

مخرجات frexp()
الم 参数 (x)مقام العدد الثنائيالنسبة
000
x >= 1إيجابيإيجابي
x <= -1سالبإيجابي
-1 < x < 0سالبسالب
0 < x < 1إيجابيسالب

مثال 1: كيف يعمل frexp() في C++؟

#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

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

#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;

}

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

  25 = 0.78125 * 2^5