مشاهده نسخه کامل
: یک سوال ساده از عملگرها
نازنین زهرا
04-08-2009, 17:09
سوال این است که:حاصل عبارت روبه رو چه می شود
25 imp 41 eqv 37
می دانم که eqvاولویت اش بیشتر است می دانم باید به nbcd تبدیل شود تا به جواب برسیم
41=00101001
37=00100101
eqv=11110011=-13
چه طور جواب -13 می شود من هرکار می کنم عددی مثبت بالای 200 می رسم من فقط یک قسمت اش گفتم
نازنین زهرا
17-08-2009, 08:42
یعنی هیچ کس نمی دونه
این تست ویژوال چه طور هیچ کس نمی دونه
سلام.
فکر کنم کسی متوجه نشد...
متاسفانه منم متوجه نشدم...
اگه میتونین واضح تر بدید و یک یا چند مثال هم بزنید.
موفق باشید.
نازنین زهرا
19-08-2009, 06:18
فرض کنید یک عبارت به شما داده اند جواب اش از شما خواسته اند
حالا این عبارت این است
41 eqv 37
جواب شما چه عددی همین
سلام
اول باید بدانید که محاسبات بیتی وابسته است به انداره متغیرهای مورد محاسبه.
مثلاً ...
جواب محاسبه فوق از 8 تا 64 بیتی با و بدون علامت در VB9 چنین خواهد بود:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
شاید به نظر شما این جواب ها مختلف باشند ولی از دید ریاضی مبنای دو این اعداد تغریباً برابر هستند و مشکل شما در عدم درک این تفاوت ناشی از عدم اطلاع از نحوه ذخیره اعداد منفی در رایانه میشود که طبق روشی موسوم به مکمل2 انجام میشود.
روش مکمل دو برای اعداد منفی چنین است که کل بیتهای عدد را معکوس کرده و سپس با 1 واحد کم میشود.
مثلاً اگر محاسبه یک بایتی باشد 13- چنین محاسبه و ذخیره میشود.
(در ج صفرهای اضافی تا انتهای متغییر بسیار لازم است!)
عدد 13 در قالب 8 بیتی
00001011
معکوس میشود
11110100
1- میشود
11110011
این عدد 13- در RAM در شرایط یک بایتی خواهد بود (SByte یا Int8 در VB9)
پس 11110011 در شرایط SByte یا Int8 میشود 13- ولی همین 11110011 اگر داخل یک Byte یا UInt8 باشد معنی 243+ را میدهد !!!!
حالا وقتی متغییر بزرگتر شود (مثلاً 16 بیتی) صفرهای خالی قبل از ان همه یک شده و عدد را بزرگتر میکنند.
عدد 13 در قالب 16 بیتی
0000000000001011
عدد 13- در قالب 16 بیتی
1111111111110011
باز هم 1111111111110011 در قالب علامت دار 16 بیتی (مثل Short یا Int16 در VB9) معنی 13- میدهد ولی همین مقدار در یک قالب 16 بیتی بدون علامت (مثل UShort یا UInt16 در VB9) معنی 65523 میدهد!!!
میبینید که فرق خاصی ندارد و همه جوابها یکی است.
=====
ولی اگر میخواهید بدانید که روش ریاضی مکمل2 برای جبر مبنای 2 از کجا آمده به اینت دقت کنید:
پس 13+ این شد:
00001011
و 13- هم این شد:
11110011
خوب حالا اگر 13+ با 13- جمع شود چه میشود؟
00000000
خوشتان امد! این یعنی دنیای زیبا و جذاب ریاضی.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.