PDA

View Full Version : سوال: داده ی نوع int



Saeed113
دوشنبه 24 آبان 1389, 00:35 صبح
فرض مي کنيم که در زبان C داده ي نوع int در رايانه من 16 بيت باشد! با تبديل رقم 32767 به دودويي به عدد 111111111111111 در مبناي دو تبديل مي شود ( يعني عدد يک 15 بار تکرار شده ) و برابر 15 بیت است در صورتي که حجم حافظه در نظر گرفته شده براي اين نوع داده 16 بيت است يعني عدد 32767 در مبنای دو ، یک بيت کم دارد ! آيا مي توان گفت که اين بيت اضافي براي تبديل اين عدد به يک مقدار منفي است ؟ يعني براي اينکه به عنوان مثال عدد 32767 را منفي کنيم این بیت اضافی را قرار داده اند؟ اگر بله آيا دليل ديگري هم دارد ؟ و اگر خير اين بيت اضافي به چه دردي مي خورد؟

vcldeveloper
دوشنبه 24 آبان 1389, 01:46 صبح
اون یک بیت برای مشخص کردن مثبت یا منفی بودن عدد مربوطه استفاده میشه.

tdkhakpur
دوشنبه 24 آبان 1389, 21:18 عصر
آيا مي توان گفت که اين بيت اضافي براي تبديل اين عدد به يک مقدار منفي است ؟

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

يعني براي اينکه به عنوان مثال عدد 32767 را منفي کنيم این بیت اضافی را قرار داده اند؟ اگر بله آيا دليل ديگري هم دارد ؟ و اگر خير اين بيت اضافي به چه دردي مي خورد؟
بله در زبانهای سطح بالا مانند c ویا سایر زبانها بجز اسمبلی بیت آخر برای منفی بودن یا مثبت بودن عدد استفاده میشه.