...StacK...
یک شنبه 06 تیر 1389, 09:03 صبح
سلام
مثلا وقتی گفته میشه نوع float 7 رقم دقت داره و بین 10 به توان 38- تا 38 منظور چیه؟ و بازه اون دقیقا چی میشه؟
و به چه صورت ذخیره میشه؟ اگر به صورت نماد علمی ذخیره میشه و 23 بیت برای مانتیس و 8 بیت برای نما و 1 بیت برای علامت عدد...
پس در این صورت تو 23 بیت ما میتونیم عدد 8388607 را نمایش بدیم
پس چرا خروجی برنامه زیر :
/ test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
#include<stdlib.h>
#include<limits>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
system("color a");
float x=8388607;
cout<<x;
return 0;
}
به صورت 8.38861e+006 هست؟ که میشه 8388600 که با عدد وارد شده مطابقت نداره...!!!
و در برنامه زیر:
// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
#include<stdlib.h>
#include<limits>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
system("color a");
float x=4.9999999;
cout<<x;
return 0;
}
خروجی به صورت زیر هست:
5
چرا پس عدد رو گرد کرد و یک رقم دقت رو هم نداشت؟؟
زمانی که ما عدد 0.000000000003232323- رو وارد میکنیم مانتیس و نما به چه صورت در حافظه ذخیره میشه؟؟؟
مثلا وقتی گفته میشه نوع float 7 رقم دقت داره و بین 10 به توان 38- تا 38 منظور چیه؟ و بازه اون دقیقا چی میشه؟
و به چه صورت ذخیره میشه؟ اگر به صورت نماد علمی ذخیره میشه و 23 بیت برای مانتیس و 8 بیت برای نما و 1 بیت برای علامت عدد...
پس در این صورت تو 23 بیت ما میتونیم عدد 8388607 را نمایش بدیم
پس چرا خروجی برنامه زیر :
/ test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
#include<stdlib.h>
#include<limits>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
system("color a");
float x=8388607;
cout<<x;
return 0;
}
به صورت 8.38861e+006 هست؟ که میشه 8388600 که با عدد وارد شده مطابقت نداره...!!!
و در برنامه زیر:
// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
#include<stdlib.h>
#include<limits>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
system("color a");
float x=4.9999999;
cout<<x;
return 0;
}
خروجی به صورت زیر هست:
5
چرا پس عدد رو گرد کرد و یک رقم دقت رو هم نداشت؟؟
زمانی که ما عدد 0.000000000003232323- رو وارد میکنیم مانتیس و نما به چه صورت در حافظه ذخیره میشه؟؟؟