الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية إظهار الأعداد الضخمة باستخدام الدالة printf !

بدأه khaled_prg في 29 يوليو 2010 · 14 رد · 727 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أريد أن أظهر متغيرات من النوع الضخم باستخدام الدالة printf و وجدت مشكلة في عدم معرفة الرموز الخاصة بهذه المتغيرات !!

كلما أعرفه هو أن الرمز %d يقابل short و %ld يقابل long و %f يقابل float و %lf يقابل double و لكن ماذا عن بقية الأنواع مثل:

long long و long double !؟

----------

كنت أعتقد ان النوع long long من النوع الصحيح المضاعف الضخم و long double أيضا , هل هذا صحيح !؟

بانتظاركم :)

#2

لل long long إستخدم ll

لل unsigned long long إستخدم ull

2
#3

السلام عليكم

اقتباس
لل long long إستخدم ll

لل unsigned long long إستخدم ull

+1

طيب ماذا عن الرمز الخاص بـ long double !؟

هل long double من أنواع الأعداد الصحيحة أم ماذا !؟

سلامي :)

1
#4

من قرائتي لصفحة ال wiki هذه...

وجدت أن ال long double هو عباره عن double ذا دقة أعلى من ال double .... إذن هو ليس من الأعداد الصحيحه :D

2
#5

السلام عليكم

اقتباس
من قرائتي لصفحة ال wiki هذه...

وجدت أن ال long double هو عباره عن double ذا دقة أعلى من ال double .... إذن هو ليس من الأعداد الصحيحه :D

+1

هل أفهم من كلامك أن الرمز %lld خاص بـ long long و الرمز %llf خاص بـ long double !؟

--------------------

النوع unsigned ممكن يحتوي على فاصلة (يكون float مثلا !) !؟

#6

حسنا,,,,

من هنا نجد الأتى:

ال printf و أخواتها تأخذ التالي كمحددات لها :

%[flags][width][.precision][length]specifier

بالنسبه لل specifier (المحدد) تأخذ هذه الأشكال:

c مع الأحرف

s مع السلاسل النصية

i أو d مع الأرقام الصحيحه ذوى الإشاره (signed)

u مع الأرقام الصحيحه بدون إشاره (unsigned)

f,g,e مع الأرقام العشريه (ذوات العلامة العشريه)

p مع المؤشرات

بالنسبة ل flags :

- إن أردت المحازاه لليسار بدلا من اليمين

المهم, مربط الفرس هنا في ال length : تاخذ قيمة من ثلاث قيم:

h لل short

l لل long مع الأعداد الصحيحه

L لل long مع double

مثال:

#include <stdio.h>

int main(void)
{

 	long long int x = 200;
 	printf("%lli\n", x);

 	long double d = 50E10;
 	printf("%Lg\n", d);

	system("pause");
 	return 0; 	
}

نأتي لسؤالك

اقتباس

هل أفهم من كلامك أن الرمز %lld خاص بـ long long و الرمز %llf خاص بـ long double !؟

من الوصلة السابق ذكرها و التي تحدثنا عنها, لا فإن بالنسبة لل long double نستخدم L بدلا من l (مع g أو f أو e )

اقتباس
النوع unsigned ممكن يحتوي على فاصلة (يكون float مثلا !) !؟

أعتقد بنسبة تقارب ال 100% أن موضوع ال unsigned مطبق فقط مع الأرقام الصحيحه ...

2
#7

السلام عليكم

+1 على المساعدة و جزاك الله ألف خير :wub:

-------------------------------

اقتباس

h لل short

ما فهمت إيش تقصد بالضبط ! ممكن توضح أكثر :blush:

اقتباس
أعتقد بنسبة تقارب ال 100% أن موضوع ال unsigned مطبق فقط مع الأرقام الصحيحه ...

ما دليلك !؟ :)

سلامي.

#8

بالنسبة لل h مع ال short, هذا مثال:

 	unsigned short s = 10;
 	printf("%hu\n", s);

بالنسبة لموضوع ال unsigned فهو أصلا إسمه unsigned integer :D ,,, حقيقة لاأعرف السبب,, فأتمني لو أحد من الأخوه حدثنا عنه

#9

السلام عليكم

اقتباس
بالنسبة لل h مع ال short, هذا مثال:

unsigned short s = 10;
        printf("%hu\n", s);

هل الرمز h خاص يـ unsigned short أم ماذا !؟

اقتباس
بالنسبة لموضوع ال unsigned فهو أصلا إسمه unsigned integer :D ,,, حقيقة لاأعرف السبب,, فأتمني لو أحد من الأخوه حدثنا عنه

يا ريت :)

#10
اقتباس
بالنسبة لموضوع ال unsigned فهو أصلا إسمه unsigned integer :D ,,, حقيقة لاأعرف السبب,, فأتمني لو أحد من الأخوه حدثنا عنه

لا اعتقد ان احد قد سمع عن unsigned float او unsigned double!!. الكلمه unsigned تنطبق فقط مع انواع الأعداد الصحيحه و ليس مع انواع الأعداد العشريه.

و الله ولي التوفيق

مدونتي: C++ Tips and Tricks

#12

h خاص ب short و u خاص ب unsigned

#14

i , d للأرقام الصحيحه عموما..

h للأرقام القصيره..

1

مواضيع مشابهة