ورود

View Full Version : یشه یکی یه توضیح درباره xor and بده



mehdi_naghous
شنبه 06 شهریور 1389, 11:18 صبح
یشه یکی یه توضیح درباره xor and در بیتها بده
من یه اموزش ازش دیدم توی یه سایت خارجی اما ازش چیزی سر در نیاوردم

Felony
شنبه 06 شهریور 1389, 12:59 عصر
عملکر and مثل حرف "و" در فارسی هست ، مثلا اگر شما در مدرسه بودید و سر کلاس بودید پس در کلاس حاضر هستید ، هر کدوم از این 2 شرط وقتی نقض بشه پس شما در کلاس حاضر نبودید . ( اگر سر کلاس نباشید در کلاس حاضر نیستید ، اگر هم در مدرسه نباشبد پس سر کلاس هم نمیتونید باشید پس باز هم حاضر نیستید ، برای حاضر بودن در کلاس هم باید در مدرسه باشید و هم در کلاس )

به عبارتی حواب and وقتی True میشه که هر 2 شرط یا n شرط شما برقرار باشن و اگر حتی یکی از این شرط ها برقرار نباشه جواب And شرط شما هم False هست .

hossein_h62
شنبه 06 شهریور 1389, 16:35 عصر
xor هم دقیقا برعکس and عمل میکنه ، یعنی باید همه شرط های شما غلط باشه ( برقرار نباشه ) تا جواب شرطتتون True بشه و اگر حتی یکی از شرط هاتون برقرار باشه جواب False هست .
با سلام
عملگر XOR یا Exclusive Or برعکس AND نیست بلکه عملگری هست که خروجی آن زمانی true میشه که فقط یکی از دو عملوند true باشند، در غیر اینصورت خروجی False خواهد بود.
در ضمن عملگری که دقیقا برعکس And عمل میکنه NAND هستش.

mehdi_naghous
شنبه 06 شهریور 1389, 20:22 عصر
میشه با ذکر یک مثال توضیح بدید
تشکر

hossein_h62
شنبه 06 شهریور 1389, 21:49 عصر
میشه با ذکر یک مثال توضیح بدید
شکل ضمیمه رو ببینید.
بجای X و Y هر عبارت منطقی میتونه قرار بگیره.

Felony
شنبه 06 شهریور 1389, 22:36 عصر
با سلام
عملگر XOR یا Exclusive Or برعکس AND نیست بلکه عملگری هست که خروجی آن زمانی true میشه که فقط یکی از دو عملوند true باشند، در غیر اینصورت خروجی False خواهد بود.
در ضمن عملگری که دقیقا برعکس And عمل میکنه NAND هستش.
بله قسمت آخر توضیحات من ایراد داشت ( داشتم به چند تا پست دیگه پاسخ میدادم و حواسم جمع نبود ... )

متشکر .

nilidelphi
یک شنبه 07 شهریور 1389, 13:12 عصر
اگه میخوای کاربرد برنامه نویسی این عملگر های منطقی رو بدونید می تونم بگم که بیشتر کاربرد این عملگر ها در برنامه نویسی گرافیکی و بهنگام دادن افکت و سایه به شی گرافیکی مورد نظر است که از ترکیبی از این عمگرها و بیشتر Shr و Shl استفاده می شود.
البته کاربرد های فراوان دیگری هم دارد مثل انجام عملیات رو داده های موجود در پورت و غیره...

یه نمونه تابع برات میزارم شاید بیشتر با کاربردش آشنا بشی:



function Blend(Color1, Color2: TColor; Value: Byte): TColor;
var
i: LongInt;
r1, g1, b1, r2, g2, b2: byte;
begin
Value := Round(2.56 * Value);
i := ColorToRGB(Color2);
R1 := Byte(i);
G1 := Byte(i shr 8);
B1 := Byte(i shr 16);
i := ColorToRGB(Color1);
R2 := Byte(i);
G2 := Byte(i shr 8);
B2 := Byte(i shr 16);
R1 := (Value * (R2 - R1)) shr 8 + R1;
G1 := (Value * (G2 - G1)) shr 8 + G1;
B1 := (Value * (B2 - B1)) shr 8 + B1;
Result := (B1 shl 16) + (G1 shl 8) + R1;
end;


البته اگه درس ریزپردازنده یا VHTL رو گذرانده باشی بیشتر در این مورد متوجه خواهی شد.

موفق باشی.