سلام و خسته نباشید
میخواستم بدونم کسی میدونه این علامت=| یعنی چی؟
سلام و خسته نباشید
میخواستم بدونم کسی میدونه این علامت=| یعنی چی؟
=| این علامت به چشمم نخورده اما اگه =! باشه میشه مخالف
سلام.
x|=y
معادلx=x|yاست.
برای درک نحوه عملکرد این عملگر باید با نحوه عملکرد '|' آشنا باشید.
عملگر '|' مانند "یا" عمل می کند و در مورد عبارات منطقی در صورتی که یکی از دو عبارت و یا هردوی آنها true باشند مقدار true را بر می گرداند. این عملگر در موارد باینری در صورتی که یکی و یا هردوی بیتها برابر 1 باشند مقدار 1 را بر می گرداند.
امیدوارم مثال زیر در درک این موضوع مفید باشد:
//بسم الله الرحمن الرحیم
//اللهم صل علی محمد و آل محمد
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int a = 0x0f0f;
int b = 0xf0f0;
Console.Write("0x{0:x4} | 0x{1:x4} = ", a, b);
a |= b;
Console.WriteLine("0x{0:x4}", a);
bool x = true;
bool y = false;
Console.Write("{0} | {1} = ", y, x);
y |= x;
Console.WriteLine(y);
}
}
}
خروجی:
0x0f0f | 0xf0f0 = 0xffff
False | True = True
چشم ظاهر گر نبیند عیب نیست چشم دل گر ننگرد باید گریست**********اَلسَّلامُ عَلَى الْحُسَيْنِ وَ عَلى عَلِىِّ بْنِ الْحُسَيْنِ وَ عَلى اَوْلادِ الْحُسَيْنِ وَ عَلى اَصْحابِ الْحُسَيْنِ
البته باید توجه داشته باشید که در برخورد با مقادیر منطقی از محیط Native همیشه بهتره که از ||= و &&= استفاده کنید.چون ممکنه که مقادیر شما معادل صفر و یک نباشند و از بیتهای دیگر استفاده شده باشد.
بهش میگن Or Assign
یعنی هر کدوم از بیتهای سمت راست که در سمت چپ ۱ نیست ۱ بشه.
آخرین ویرایش به وسیله FastCode : جمعه 17 آبان 1392 در 16:52 عصر دلیل: نبود->نیست
در قسمت اول a و b مقداری معادل مقدار باینری:
a=0000111100001111
b=1111000011110000
داشتند که با استفاده از |= مقدار a برابر1111111111111111شد. در واقع تمام بیتهایی که در b مقدار 1 داشتند، در a هم باید 1 باشند. برای مثال حاصل 1|2 برابر با 3 است:
0001b|0010b=0011b//binary
در حالیکه 2|6 برابر 6 است:
0010b|0110b=0110b
حاصل باید شامل تمام بیتهای برابر 1 هر دو طرف باشد.
این مورد به پارامترها و flag هایی که در ویندوز برای ساخت پنجره ها استفاده می شود بر می گردد که بهتر بود در همان تاپیکی که در این باره ایجاد کرده بودید بحث شود. فقط علی الحساب فرض کنید style یک پنجره در حالت تمام صفحه برابر 8 یا 1000b باشد، این یعنی که چهارمین بیت مشخص می کند که پنجره بایدmaximize باشد حالا فرض کنید مثلا سومین بیت برای برداشتن نوار عنوان استفاده می شود؛ حالا اگر قصد داشته باشیم یک پنجره تمام صفحه و بدون نوار عنوان ایجاد کنیم:و این یعنی چی؟p.ClassStyle |= CS_DROPSHADOW
//for example
int WS_MAXIMIZED=8;//1000b
int WS_NoTitleBar=4;//0100b
Window.Style=WS_MAXIMIZED;//making window maximize by adding 8 to it.
window.Style|=WS_NoTitle;// making window with-out titlebar by adding 4 to its style.....
با این کار بیتهای سوم و چهارم برابر 1 شدند و ویندوز با پردازش این مقدار پنجره ای تمام صفحه بدون نوار عنوان (پارامتر ها فرضی هستند و برای مثال آورده شدند) ایجاد می کند.
چشم ظاهر گر نبیند عیب نیست چشم دل گر ننگرد باید گریست**********اَلسَّلامُ عَلَى الْحُسَيْنِ وَ عَلى عَلِىِّ بْنِ الْحُسَيْنِ وَ عَلى اَوْلادِ الْحُسَيْنِ وَ عَلى اَصْحابِ الْحُسَيْنِ
اول هگز نه هگزادسیمال
دوما کوچیک بنویس.نمیدونی توی مانیتور ۲۳ اینچ و ۳۰ اینچ چقدر بزرگ میشه.
برای اینکه باینری خیلی طولانی و غیر قابل خوندن میشه:
b00000000000000100000000000000000
در برنامه نويسى براى نشان دادن اعداد دو دويى مورد استفاده كامپيوتر در يك شكل فشرده تر به كار مى رود. اعداد هگزا دسيمال كاملا در بايت هاى 8 بيتى كه اساس حافظه و منبع ذخيره كامپيوتر مى باشد، جاى مى گيرد. از آنجايى كه در هر 4 بيت مى توان هر يك از اين 16 رقم را نشان داد، يك عدد دو رقمى هگزا دسيمال در يك بايت گنجانده مى شود.
eeeee
خوب شدی گفتی.اگر شما نبودی من چکار میکردم؟ توی چه جهلی داشتم زندگی میکردم.چند سال بود داشتم روی احتمالات برنامه نویسی میکردم.باید برم همهی برنامه هام رو بازبینی کنم که اشتباه ننوشته باشم.
در کل استفاده از اعداد هگز به جای اعداد باینری بهتره
چون از لحاظ شکلی هم فشرده تره و طولش کمتر میشه
و از لحاظ حافظه بهینه تره چون 2 رقم از نوع عدد هگز فقط در یک بایت جا می گیره .
مرسی از عزیزان .