PDA

نسخه کامل مشاهده نسخه کامل : سوال در مورد متد Xor



sltavakoli
19-07-2008, 15:09
سلام دوستان.

یکی از کار های که این متد انجام میاده اینه که اگر مقداری true و مقداری false شد انگاه نتیجه true میشود.

ولی ظاهرا این متد یه کار دیگه هم انجام میده.مثلا : اگر دو عدد 3 و 5 رو Xor کنیم حاصل 6 به دست میاد.

میخواستم بدونم چه جوری این 6 به دست اومده؟Xor با 3 و 5 چی کار کرده که 6 به دست اومده؟

یه توضیح کلی بدین.

یا حق.

_H2_
20-07-2008, 09:04
سلام
اولاً Xor یک اپراتور است، مثل اپراتورهای مشهور + و - و * / و Or و And و .... و....

این اپراتور بولی اصطلاحاً "OR انحصاری" خوانده میشود. یعنی اگر فقط یکی از ورودی هایش 1 باشد خروجی اش 1 است.

ورودی ورودی خروجی
0 0 0
1 0 1
0 1 1
1 1 0

در برنامه نویسی 1 معادل true و 0 معادل false فرض میشود.


در C اپراتورهای بولی-شرطی با اپراتورهای مشابه کار روی اعداد متفاوت است، ولی در VB چهار اپراتور به صورت مشترک برای اعمال منطقی بولی و عددی استفاده میشوند و سینتکس، ریتمی یکسان را انتخاب کرده.

برای اعمال روی اعداد، تک تک بیت های باینری اعداد با هم طبق آن اپراتور محاسبه میشوند.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

لازم به ذکر است که این اپراتورها جزء اپراتورهای بنیادین CPU هستند و یکراست و بدون هیچ شکسته شدن به کدهای دیگر، در یک تک عمل توسط CPU اجرا میشوند.

یکبار در تاپیک دیگری هم این را گفته بودم، ولی مجدداً گفتنش جالب است.
تنها اعمالی که در دنبای الکترونیکی ویک و صفری مدارات دیجیتال و مادربورد و CPU و... شما شناخته شده و رسمی هستند، همین چهار اپراتور بولی هستند، و کلیه دستورات و پردازش ها و اعمال دیگر ترجمه و نگاشتی هستند به یک ساختار بولی.

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

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

_H2_
20-07-2008, 09:46
سلام
من جستجویی کردم و آن تاپیک دیگر را پیدا کردم.
forum.p30world.com/showthread.php?t=217759&page=2

sltavakoli
20-07-2008, 12:23
دستت درد نکنه.

مرسی.

ولی اخرش نفهمیدم چی شد؟

مثلا :


مبنای ده
167 AND 109 === 37


این مثال چه جوری شده ؟یعنی عمل گر And رو 2 عدد 167 و 109 چه تغییری داده که جواب 37 شده؟جمع که نکرده.تفزیق هم که نیست.پس .... ؟

_H2_
20-07-2008, 15:15
سلام
شما باید به عمل باینری در زیر آن دقت کنید.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

هر کجا دوتا 1 داشتیم ، خروجی 1 شده. (تعرف اپراتور AND)

whisper
20-07-2008, 19:58
خیلی جالب بود داشتم به این فکر میکردم به کامپیوتر که انسان ساخته یه 0 و یه 1 دادن این همه کار میکنه اگه بهش یه کامپیوتر بدن چی کار می کنه .....!!!

sltavakoli
20-07-2008, 23:36
اقا H2

واقعا ممنونم.خيلي خيلي.

كاملا فهميدم چي به چي شد.

دستت درد نكنه.

يا حق.

_H2_
21-07-2008, 09:01
سلام

خیلی جالب بود داشتم به این فکر میکردم به کامپیوتر که انسان ساخته یه 0 و یه 1 دادن این همه کار میکنه اگه بهش یه کامپیوتر بدن چی کار می کنه .....!!!
هیچی! احتمالاً هنگ میکرد! :31:
خنگه دیگه، بیشتر از همین دوتا عدد و آن دو سه عمل را حالیش نمیشه! هیچی نوفهمه! به نظر من مرغ و خروسی که من زمان طفولیت داشتم از ابر رایانه های IBM با هوش تر بودند!!!!!! :31: