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

overflow

بدأه hasan abdel-latif في 22 ديسمبر 2011 · 3 رد · 637 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أولا أعتذر منكم علي غيابي المستمر للمنتدي بسسبب الدراسه اعاننا الله عليها ...

ثانيا ..

عند كتابة هذا الكود

#include <iostream>
using namespace std;

int main ()
{
int number=600851475143;
cout << number;
  return 0;
}

لا بطبع المطلوب هل هذا هو overflow وإن كان هو ما علاجه ما العلم إن المترجم أظهر لي الأخطاء التاليه..

C:\Windows\System32\oui.cpp(8) : warning C4305: 'initializing' : truncation from 'const __int64' to 'int'
C:\Windows\System32\oui.cpp(8) : warning C4309: 'initializing' : truncation of constant value
Linking...

oui.exe - 0 error(s), 2 warning(s)

وقرأت أيضا انه في حل وهو إنشاء type جديد .. ما رأيكم؟

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

"فمن إتبع هداي فلا يضل ولا يشقي " صدق الله العظيم

ماض في الطريق إلي .... C++

#2

نعم هذا هو overflow على المتغير حيث أن مساحة الذاكرة المتاحة للنوع int ﻻتكفى للقيمة المدخلة

عليك بتجربة نوع بيانات أكبر من ذلك مثل float وبالتالى فلن تحدث المشكلة:

للمزيد عن نوعية اﻻرقم الطويلة أو العائمة floating point numbers

ﻷ أستحداث نوع بيانات جديد أرج الىهذة المشاركة فى المنتدى.

#include <iostream>
using namespace std;

int main ()
{
     float number = 600851475143;
    cout << number ;
    return 0;
}
1

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#3

معلومات مفيدة شكرا لك

سبحان الله والحمدلله

#4

:) شكرا لك ....

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

"فمن إتبع هداي فلا يضل ولا يشقي " صدق الله العظيم

ماض في الطريق إلي .... C++

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