تور لحظه آخری
امروز : سه شنبه ، 3 مهر 1403    احادیث و روایات:  امام موسی کاظم (ع):افطارى دادن به برادر روزه دارت از گرفتن روزه (مستحبى) بهتر است.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

تریدینگ ویو

لمینت دندان

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

طراحی کاتالوگ فوری

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

وام لوازم خانگی

نتایج انتخابات ریاست جمهوری

خرید ابزار دقیق

خرید ریبون

موسسه خیریه

خرید سی پی کالاف

واردات از چین

دستگاه تصفیه آب صنعتی

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

خرید نهال سیب سبز

قیمت پنجره دوجداره

بازسازی ساختمان

طراحی سایت تهران سایت

دیوار سبز

irspeedy

درج اگهی ویژه

ماشین سازان

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

شات آف ولو

تله بخار

شیر برقی گاز

شیر برقی گاز

خرید کتاب رمان انگلیسی

زانوبند زاپیامکس

بهترین کف کاذب چوبی

پاد یکبار مصرف

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

بلیط هواپیما

بلیط اتوبوس پایانه

 






آمار وبسایت

 تعداد کل بازدیدها : 1818014379




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

boolean


واضح آرشیو وب فارسی:سایت ریسک: View Full Version : boolean elhamkurd15-02-2010, 09:28 AM:41:سلام چرا متغير Boolean به ميزان 2 بايت از حافظه را اشغال مي‌كند؟ در صورتيكه با يك بايت مي توان 0 يا 1 را (True-False) را ذخيره نمود؟ aaaammmm8715-02-2010, 10:05 AMEdit Post !!!!!!!!!!!!!!!!!!!! 808615-02-2010, 10:48 AM:41:سلام چرا متغير Boolean به ميزان 2 بايت از حافظه را اشغال مي‌كند؟ در صورتيكه با يك بايت مي توان 0 يا 1 را (True-False) را ذخيره نمود؟ با سلام اينم بايد بدونيم كه مقدار عددي True برابر -1 و مقدار عددي False برابر 0 ميباشد. فكر كنم جوابتان را گرفته باشيد. با تشكر MR Cracker15-02-2010, 10:56 AMبا سلام اينم بايد بدونيم كه مقدار عددي True برابر -1 و مقدار عددي False برابر 0 ميباشد. فكر كنم جوابتان را گرفته باشيد. با تشكر درسته ولی حتی با یک بیت هم می شه این کار رو کرد. 808615-02-2010, 11:52 AMدرسته ولی حتی با یک بیت هم می شه این کار رو کرد. اگر شما يك متغيي از نوع boolean داشته باشيد اين متغيير همزمان دو مقدار True و False‌ را در خود نگه ميدارد. و با توجه به دستورات اعمالي شما يك مقدار را برميگرداند. به مثال زير دقت كنيد: Dim a As integer a=2 ? a ما ميدانيم يك متغيير از نوع integer دو بايت حافظه اشغال ميكند كه محدوده ي عددي آن از 32767 تا -32768 را در خود نگه ميدارد. يا مثلا: Dim a As String*3 a="String" ? a خروجي: Str ميدانيم كه يك متغيير از نوع String با طول ثابت به تعداد نويسه كه ما در متغيير ميريزيم مقدار نميگيرد و بستگي به نوع تعريف كردن ما دارد كه ميتواند تا 65400 نويسه را در خود قرار دهد. كه ما در اينجا مقدار 3 را به متغيير نسبت داده ايم، حالا چه يك حرف درون آن بريزيم و چه يك كلمه 6 بايتي مثل String را درون آن بريزيم، همان 3 بايت را اشغال ميكند. حالا بر متغيير Boolean هم همين موضوع حاكم است و وقتي كه ما يك متغيير از نوع Boolean تعريف ميكنيم مقدار پيش فرض آن 2 بايت است. يادمان باشد Boolean ثابت است و مقداري پيش فرض دارد و مقدار پيش فرض آن 0 يا همان False است. با تشكر :11: _H2_15-02-2010, 10:59 PMسلام مقدار Boolean فقط دو مقدار میتواند داشته باشد و یک تک بیت هم برای آن کافی است ولی تخصیص 2 یا 4 بایت در زبانهای مختلف به این نوع متغییر در راستای هماهنگی با هسته سیستم عامل و توابع API های ان میباشد. چون وقتی ویندوز 32 بیتی است اکثر توابع API بنیادین که شالوده ویندوز را تشکیل میدهند پارامترها را در قالب 32 بیتی میگرند و پس میدهند. یک عدد را 32 بیتی میگرند و اگر عددی بزرگی بخواهند دو تا ورودی/خروجی 32 بیتی high و low خواهند داشت! یک string را باز هم 32 بیتی میگیرند!!!!!!!!! ولی 32 بیتی که به نقطه RAM ای اشاره دارد که striong در ان قرار دارد. یعنی 32 بیت شامل یک عدد که آدرس RAM است. یک Boolean را هم 32 بیتی میگرند و صفر را به False و غیر صفر را کلا به True تعبیر میکنند. ===== از طرف دیگر اکثر توابع و دستوراتی که در زبانهای برنامه نویسی وجود دارد نگاشتی به اجرای تابع اصلی API هسته سیستم عامل است. پس هرچقدر ورودی و خروجی این توابع در برنامه نویسی هماهنگی بیشتری با API های اصلی شان داشته باشد کدهای میانی کمتری نیاز است و با کمترین میزان پردازش میتوان اطلاعات را هماهنگ کرد. به همین دلیل مقدار فضای Boolean بسته به شرایط و سیستم عامل و زبان و... 2 یا 4 بایت درنظر گرفته میشود. این مساله هماهنگی گاهاً حتی در شرایط اپراتورها هم وجود دارد مثلاً به صورت خاص در VB 6 قدیم دستوری مثل این مجاز بوده: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! دقت میکنید که چطور بدون حتی وجود یک اپراتور صریح VB 6 یک Integer یا Long و... را به یک Boolean تعبیر میکند؟ ===== در نهایت بجهت هماهنگی بین محصولات مختلف (مثل ارتباط VB 6 با محصولات تحت COM) و سرعت این رویه برای Boolean ها در زبانهای مختلف و بسته به شرایط اتخاذ شده است. در نهایت در مصرزف RAM هم چندان تاثیری ندارد، چون معمولاً تعداد متغیرهای محلی زیاد نیستند مگر انکه آرایه شوند. مطلب مرتبط: (پست 12) http://forum.p30world.com/showthread.php?p=1254399#post1254399 موفق باشید. 808616-02-2010, 12:53 AMبا سلام در ضمن واحد اصلي ظرفيت حافظه بايت ميباشد. اينم ميدونيم كه هر 8 بيت 1 بايت ميباشد. به نظر من اين مباحث استانداردهاي تعريف شده اي ميباشد كه بحث در مورد آنها بيفايده است. مثل اينكه بگيم پژو 206 با سرعت 120 هم راه ميره چرا تا سرعت 210 طراحي شده؟! با تشكر سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1745]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن