تالار گفتمان مانشت

نسخه‌ی کامل: سوال از اعداد علامت دار کتاب پوران پژوهش
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با عرض سلام و خسته نباشیید
من یه سوال داشتم چون این چند صفحه رو خوندم ولی چیزی متوجه نشدم یا متوجه شدم و این سوال برام پیش اومد

اگرمن بخواهم۱۰۰۱ درمبنای ۲ را تعیین کنم یعنی مشخص کنم این عدد منفی هستش یا مثبت با سه روش مکمل یک و مکمل ۲ و یا علامت مقدار چرا حوابها یکی به دست نمیاد درصورتی می دانیم که اگر سمت چپ آخرین بیت صفر بود عدد مثبت است و اگر یک بود منفی چرا با این روش نمی تونیم تشخیص بدهیم و اگر ما با استفاده از این روش بخواهیم مکمل ۲ رو به دست بیاریم چرا جوابش غلط هستش مکمل ۲=مکمل یک+۱ یعنی اگه با این روش به دست بیارم با خود روش مکمل دو از طریق مکمل ۲ برابر نیست .

من اگر سوال بالا رو خودم حلش کنم اینطوری هستش : چون بیت اخر سمت چپ برابر یک هست پس منفی هستش و بقیقه ارقام سمت راست عدد برابر میشه با عدد 1 پس حاصل جواب میشه منفی یک در صورتی که اگه همنی مثال رو با روش علامت مقدار انجام بدهیم میشه

برابر است با منفی یک و درصورتی که با روش مکمل یک انجام بدهم برابر میشه با منفی شش و در صورتی که با روش مکمل 2 انجام بدهیم برابر میشه با منفی هفت حالا با این حساب برای اینکه توی عملیات جمع و ضرب و......... ازشون استفاده کنم کدوم روش رو انتخاب کنم.کدوم درست هستش یا اینکه چطوری تشخیص بدهم علامتش چیه .

یعنی مثلا من برای این به دست اوردم ۱۱۰۰۱ در مبنای ۲

روش علامت مقدار = منفی هفت

روش مکمل ۱ = منفی ۶
و روش مکمل ۲= منفی هفت ولی وقتی با روش مکمل ۲=مکمل ۱+یک حساب میکنم جوابش میشه => -6+1=-5 چرا .


باتشکر
سلام دوست من.
میشه سوالت رو خودت دوباره بخونی؟! Huh
(12 شهریور 1392 04:26 ب.ظ)reza.mahmodi71 نوشته شده توسط: [ -> ]با عرض سلام و خسته نباشیید
من یه سوال داشتم چون این چند صفحه رو خوندم ولی چیزی متوجه نشدم یا متوجه شدم و این سوال برام پیش اومد

اگرمن بخواهم۱۰۰۱ درمبنای ۲ را تعیین کنم ,,,

سوال شما رو خوب متوجه نشدم ، ولی به هر حال یه توضیحاتی می گم شاید به کارتون بیاد:
اولا باید تکلیف خودت رو با روش و تعداد بیت های سیستم مشخص کنی.

مثال۱:عدد ۱۲ و ۱۲- را در یک قالب ۸ بیتی و در سیستم علامت مقدار نمایش دهید؟

حل:عدد ۱۲ در مبنای ۲====>11000 که اگر آن را در یک فرمت ۸بیتی نمایش دهیم،میشود====>00011000 که معادل +۱۲ است.
برای -۱۲ نیز فقط سمت چپ ترین بیت را ۱ میکنیم،یعنی====>10011000

مثال۲:عدد ۱۲- را در یک قالب ۸ بیتی و در سیستم مکمل۱ نمایش دهید؟
طبق مثال قبل برای ۱۲ داریم===>00011000 که برای مکمل ۱ شده همه را نات میکنیم===>11100111

مثل۳:عدد -۱۲ را در یک قالب ۸بیتی و در سیستم مکمل۲ نمایش دهید؟
مکمل۲=مکمل یک+۱ پس داریم======>11100111+1=11101000

امیدوارم توضیحاتم به درد تون بخوره.
سلام
راستش من سوال شما رو درست نفهمیدم Big Grin ولی یه توضیحی در مورد سیستم اعداد می دم امیدوارم کمک کنه
کلا برای نمایش اعداد منفی 3 روش وجود داره
روشهای علامت-مقدار/متتم1/متمم 2
در روش علامت مقدار سمت چپ ترین بیت و برای علامت استفاده می کنند.1 برای منفی و 0 برای مثبت پس ما از n بیت تنها می تونیم n-1 بیت رو برای نمایش عدد استفاده کنیم.یعنی از منفی 2 به توان (n-1) منهای 1 تا مثبت 2 به توان (n-1) منهای 1
خوب این سیستم دو تا مشکل داره یکی این که 2 تا صفر داریم {مثبت/منفی} دوم اینکه واسه عمل تفریق مشکل پیش میاد باید علامتا رو تشخیص بدیم و عمل مناسب با توجه به علامت اعداد انتخاب کنیم(جمع/منفی) پس نیاز به مدار اضافی داریم
خوب تا اینجا همه چی اوکی
دومین سیستم مکمل 1 که باز بیت سمت چپ علامته که اگر یک بود یعنی عدد ما منفی اما فرقی که با سیستم علامت داره اینه که برای بدست آوردن منفی یک عدد باید تمام بیتارو عکس کنیم.اما می دونیم که در سیستم علامت-مقدار برای منفی کردن کافی بود بیت علامتو عکس کنیم.
مثال می زنم.
ما 12 رو تو باینری اینجوری نشون می دیم '00001100' خوب برا بدست آورن منفی 12 کافی تمام بیتاشو عوض کنیم یعنی '11110011'
پس ما اگه تو سیستم مکمل 1،یک عدد داشتیم که بین msb = 1 بود می فهمیم که این عدد منفیه حالا چطور بفهمیم که منفی چه عددیه
همون مثال عدد 12 کافیه یکبار ازش مکمل 1 بگیری (همه بیتاشو عکس کنی) با دونستن این که عددمون منفیه!
==> 11110011 = - مکمل 1(11110011) = -(00001100) = -12
پس تا اینجا فهمیدیم که نمایش هر عدد در هر سیستمی متفاوته!
ما 12- رو در سیستم علامت-مقدار اینجوری نمایش می دادیم 10001100
اما توی مکمل 1 به صورته 11110011
بریم سراغ آخریش مکمل 2
بازم بیت علامت بیت چپست فقط تنها فرقش با سیستم قبلی تویه نخوه ی متمم گیری
یعنی برا متمم 2 متمم 1 می گیریم 1واحدم بهش اضافه می کنیم(یا بیت اوله غیرصفرو می زاریم و بقیه رو عکس می کنیم)
پس اگه یک عدد دارای بیت علامت (جپیه)با مقدار 1 بود تو سیستم مکمل 2: می فهمیم که منفیه .حالا برای اینکه بفمیم منفی چه عددیه کافی ازش مکمل 2 بگیریم:
همون مثال عدد 12 کافیه یکبار ازش مکمل 2 بگیری با دونستن این که عددمون منفیه!
==> 11110100= - مکمل 2(11110100) = -(00001100) = -12
خوب پس -12 تو سه تا سیستم نمایشش فرق میکرد
تو علامت مقدار '10001100'
مکمل 1 '11110011'
مکمل 2 '11110100'
فقط در مورد بازه نمایش در مکمل 1 مثل علامت مقدازه ولی واسه مکمل 2 چون صفر منفی نداریم اعداد منفی یکی بیشتر!!
امیدوارم مشکلت حل شده باشهSmile
لینک مرجع