(۰۸ آبان ۱۳۹۳ ۰۴:۳۴ ب.ظ)sam_17 نوشته شده توسط: سوال دوم رو هم باز یه خورده متوجه نشدم. مکمل ۱ عدد +۱۲ میشه: ۱۱۱۱۰۰۱۱ یعنی تمام ارقام قرینه میشه.
حالا با توجه به این اگه بخوایم از عدد -۱۲ مکمل ۱ بگیریم چی؟ ابتدا باید -۱۲ رو تبدیل کنیم به دو دو یی -۱۲ : ۱۰۰۰۱۱۰۰ (با ارزش ترین بیت رو منفی کنیم) و سپس ازش مکمل بگیریم و میشه: ۰۱۱۱۰۰۱۱ .این درسته یا اشتباهه؟
با عرض پوزش، من در پست قبلیم به اشتباهی داشتم که اصلاح کردم (اونی که گفتم برای سیستم Signed-Magnitude بود).
همانطور که گفتم برای مکمل گرفتن باید همه بیت ها نظیر به نظیر نقیض کنید. توجه کنید که
در سیستم نمایش اعداد مکمل ۱، منفی هر عدد مکمل یک آن عدد است یعنی برای تبدیل عدد +۱۲=۰۰۰۰۱۱۰۰ به عدد -۱۲ باید همه بیت های آن را نقیض کنید که می شود ۱۱۱۱۰۰۱۱، یعنی برای بدست آوردن اعداد منفی در سیستم مکمل یک اول آن عدد را به صورت مثبت می نویسید و سپس با نقیض کردن تمام بیت ها به عدد منقی برسید.
حالا در
سیستم نمایش اعداد مکمل یک هستید، برای مکمل ۱ گرفتن عدد -۱۲=۱۱۱۱۰۰۱۱ تمام بیت های آن را نقیض می کنیم که +۱۲ تبدیل می شود.
شما باید بین عمل مکمل ۱ گیری و سیستم نمایش اعداد مکمل ۱ تمایز قائل بشید. مکمل گیری برای اعداد باینری تعریف می شود و کاری نداره سیستم نمایش اعداد شما چیه و این عدد چه عدد دهدهی تفسیر میشه. اما سیستم نمایش اعداد تعیین می کنه که هر عدد باینری چطور تفسیر بشه و چطور به عدد منفی تبدیل میشه و چه اعداد قابل نمایش هستند.
شما وقتی می گید عدد -۱۲ چطور مکمل یک گرفته میشه باید اول سیستم نمایش اعدادتون را تعیین کنید، اگر سیستم نمایش اعدادتون مکمل یک هست خوب عمل مکمل یک گرفتن، اعداد مثبت را به منفی و منفی را مثبت تبدیل می کند. پس اول نمایش عدد موردنظرتون را با سیستم نمایش اعداد بدست میارید و بعد عمل مکمل ۱ گیری که عددتون به صورت یک عدد باینری در نظر می گیرد، را انجام دهید.