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

ممكن تعطوني فكرة كيف أكتب برنامج لتحويل Floating Points ؟؟

بدأه HeRo888 في 31 مارس 2009 · 1 رد · 569 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

أخواني الأعزاء

برنامج السي بلس بلس شغال عليه بس عندي موضوع ما عرفت كيف أسويه

وهو floating points يعني ما عرفت كيف أكتب برنامج

يحول من binary إلى decimal والعكس صحيح ،

والمستخدم هو يختار وحدة من الاثنين

على سبيل المثال ..

أدخل 28- والناتج يكون binary

1 10000011 11000000000000000000000

أو أدخل أي رقم على شكل 1 و 0 والناتج يكون رقم عشري كسري

مثال

0 10000011 00011010000000000000000

والناتج

17.625

أفيدووني .. بارك الله فيكم !!

تم تعديل هذه المشاركة بواسطة HeRo888 في 31 مارس 2009 في 00:09

#2

اذا كنت تريد التحويل من نص يحتوي علي رقم decimal الي رقم float فهذا سهل

لكنك تريد التحويل من نص يحتوي علي رقم باينري الي float

لا يوجد دالة جاهزة تفعل ذلك لكن يمكنك برمجة واحدة فالقاعدة معروفة

لكن اليك طريقة للتحويل من نص باينري الي رقم long

char* num = "10001001011010";
bitset<32> c(num);
c.to_ulong();

هذه الدالة قد تفي بالغرض لكن عليك تعديلها لكي توافق متطلباتك

int bin2dec(const char *bin)
{
  int result=0;
  for(;*bin;bin++)
  {
	if((*bin!='0')&&(*bin!='1'))
	  return -1;
	result=result*2+(*bin-'0');
	if(result<=0) return -1;
  }
  return result;
}

هذه الطريقة اسرع بكثير يمكنك تعديلها للتحقق من المدخلات

unsigned long dec = 0;
int len = bin.len();
for (i = len - 1; i >= 0; i--)
   if (bin.at(i) == '1')
	  dec |= (1 << i);

تم تعديل هذه المشاركة بواسطة garo في 2 أبريل 2009 في 10:48

( _ /)

(='.'=)

(")-(")

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…