نمایش نتایج 1 تا 3 از 3

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

  1. #1
    کاربر دائمی آواتار complexcoding
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    قزوین
    سن
    28
    پست
    744

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

    سلام دوستان
    مگر 8 بیت یک بایت نمی شود پس چگونه در این الگوریتم تعداد بیت ها یک بایت میشوند؟
    میزان فضای ذخیره شده در struct زیر چقدر است؟
    Struct a{
    int i : 3 ;
    Char k : 4 ;
    float p ;
    } x;

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


  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    تیر 1390
    محل زندگی
    تهران
    پست
    91

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

    از
    int size = sizeof(struct a);
    std::cout << size << std::endl;

    استفاده کن.

  3. #3
    کاربر دائمی آواتار Ananas
    تاریخ عضویت
    آبان 1390
    محل زندگی
    طول 50 و عرض 34 درجه
    سن
    31
    پست
    894

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

    سلام.
    اون 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 رو بنویسی بعد اون دو تا کوچیک تر رو. یعنی به ترتیب بزرگی سایز.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •