PDA

View Full Version : سوال: مگر 8 بیت یک بایت نمی شود پس چگونه در این الگوریتم تعداد بیت ها یک بایت میشوند؟



complexcoding
دوشنبه 14 فروردین 1391, 13:57 عصر
سلام دوستان
مگر 8 بیت یک بایت نمی شود پس چگونه در این الگوریتم تعداد بیت ها یک بایت میشوند؟
میزان فضای ذخیره شده در struct زیر چقدر است؟


Struct a{



int i : 3 ;



Char k : 4 ;



float p ;



} x;


با تشکر از دوستان

_hamid
دوشنبه 14 فروردین 1391, 14:14 عصر
از
int size = sizeof(struct a);
std::cout << size << std::endl;
استفاده کن.

Ananas
دوشنبه 14 فروردین 1391, 15:21 عصر
سلام.
اون 8 ای که با sizeof بدست میاد تعداد بیت ها نیست تعداد بایت ها هست یعنی 64 بیت. 32 بیت برای float و 7 بیت برای دوتای دیگه و بقیشم بین این دو تا به اجبار حبس میشه یعنی تقسیماتش 32 بیتی هست ولی اگه از کامپایلر دایرکتیو استفاده کنی به شکل زیر می تونی سایزشو به 6 بایت برسونی :


#pragma pack (push,1)
struct a
{
int i : 3 ;
Char k : 4 ;
float p ;
} x;
#pragma pack (pop)

و یا اینکه اول float رو بنویسی بعد اون دو تا کوچیک تر رو. یعنی به ترتیب بزرگی سایز.