2 سوال ساده در c++ -- عملگرها -- شیفت و نقیض

nimja

Member
2 سوال ساده در c++

سلام
دو تا سوال در c++ داشتم:
1- این علامت (x!) در برنامه زیر چه کاری انجام میده:
کد:
int main()
{
int x=26;
cout <<!x;
return 0;
}

البته من خودم در c++ امتحان کردم و عدد صفر رو در خروجی چاپ کرد.ولی دلیلشو میخواستم؟؟


2- این علامت (3=<<a) در برنامه زیر چه کاری انجام میده؟
کد:
int a=17;
a>>=3;
این رو هم امتحان کردم .مقدار a رو برابر 2 قرار میده.ولی چطور؟


خیلی متشکر
 

hoax3r

New Member
عملگر ! عملگر NOT هست و مقداری که بر میگردونه یا true هست (یعنی 1) یا false (یعنی 0)
این عملگر میاد true رو به false و بلعکس false رو به true تبدیل میکنه
اعداد صحیح غیر صفر true محصوب میشن پس عدد 26 مقدار true هست و قتی با عملگر ! استفاده بشه نتیجه عکس
برگردونده میشه یعنی falseدر نتیجه 0 برگردونده میشه

در مورد عمبگر << این عملگر میاد عدد رو در مثال شما 17 رو به اندازه پارمتر دوم یعنی 3 اصطلاحا شیفت میده
یعنی به اندازه 3 بیت، بیتهای عدد 17 رو به سمت راست منتقل میکنه، برای فهم بهتر باید اعداد رو به مبنای 2 ببریم
عدد 17 در مبنای 2 برابر 00010001 هست اگه 3 بیت به سمت راست شیفت بدیم میشه 00000010 حالا همین عدد رو به
مبنای 10 ببریم میشه 2 همون نتیجه ای که شما هم دیدین
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا