برای ارتباط با مدیر سایت از ID تلگرام ebrahimi_younes@ استفاده نمایید. به سوالات و مشکلات برنامه نویسی پاسخ داده نمی شود.
کتاب های سی شارپ و جاوا به زبان ساده

تبدیل اعداد منفی به باینری

تبدیل اعداد منفی به باینری راحت نیست و کمی گیج کننده است. برای درک تبدیل اعداد منفی به باینری اجازه دهید که یک مثال بزنیم. در این مثال می خواهیم عدد 5- را به معادل باینری آن تبدیل کنیم.
در مرحله اول ابتدا عدد 5- را به 5+ و سپس این عدد مثبت را به معادل باینری آن تبدیل می کنیم :

5 = 00000101

مقدار 5+ برابر 101 در سیستم دودویی است پس بقیه بیت های سمت چپ با عدد صفر پر شده اند. بعد از این تبدیل با استفاده از عملگر بیتی NOT( ~ ) بیت ها را برعکس می کنیم :

~5 = 11111010

بعد از انجام این کار مقدار باینری 5~ را با عدد 1 به صورت زیر جمع می کنیم :

   11111010
+  00000001
-----------
   11111011

نتیجه این جمع عدد 5- است. در نگاه اول ممکن است این سوال برایتان پیش بیاید که واقعا حاصل جمع بالا عدد 5- است؟ همانطور که گفتیم این تبدیل کمی گیج کننده است. اگر نتیجه بالا را با استفاده از تکنیک هایی که یاد گرفته اید به معادل دسیمال آن تبدیل کنید رقم 251 را به دست می آورید. اما سی شارپ و دات نت از اولین بیت سمت چپ برای تشخیص مثبت یا منفی بودن عدد استفاده می کند. اگر این بیت 1 باشد عدد منفی و اگر صفر باشد عدد مثبت است. پس باید به صورت زیر عمل جمع را انجم دهید :
negative-to-binary

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.

  1. امید پاسخ دادن

    توضیحات بسیار شفاف و واضح بودند.
    تشکر.

  2. امير پاسخ دادن

    ممنون از توضیحات عالی و واضح شما

  3. پرهام پاسخ دادن

    ممنون. واقعا به درد خورد. من چون سیستمهای embedded رو شروع به خوندن کردم گاهی احتیاج به توضیح دارم‌. مرسی

    • یونس ابراهیمی پاسخ دادن

      خواهش می کنم

  4. مهدی پاسخ دادن

    مرسی خوب بود مخصوصا اون عکس پایین که همه چیزو میگه
    در کل این جور چیزا کجا به کار آدم میاد
    اصلا کاربردش واسه چه برنامه نویساییه؟

  5. مهدی پاسخ دادن

    مرسی
    اینا رو تا حدودی میدونم من خودم چند وقته برنامه نویسی میکنم این عملگرها رو هم میشناسم ولی هیچ وقت نشد من مثلا بگن اقا برو فلان برنامه رو بنویس این عمگرا هم توش کاربرد دارن
    مثلا ادم میره برنامه نویسی شی گرا یاد میگیره خوب همه جا به کار میاد و …
    ولی اینا به نظرم بیشتر واسه اینکه بیشتر بدونی خوبه نه اینکه بخوای باهاشون کار کنی

    • یونس ابراهیمی پاسخ دادن

      دقیقا همینطوره که می فرمایید