PDA

View Full Version : سوال: =>> در C#‎ چه معنی میدهد



sareham238
شنبه 11 مهر 1394, 15:17 عصر
سلام دوستان من میخواستم بدونم این فرمول زیر چه خروجی داره و =>> در این برنامه چه عملی رو انجام میدهد(فرض کنید مقدار مساوی با 128 است)


values[i] <<= 8;

SabaSabouhi
یک شنبه 12 مهر 1394, 08:28 صبح
سلام

=> به معنی کوچکتر یا مساوی هست.
اما =>> معنی دیگری دارد و به معنی Shift کردن مقدار یک عدد به سمت چپ است به میزان عدد بعد از تساوی.
مثلاً


n <<= 2;
n = n << 2;

دو عبارت بالا با هم معادل هستند. و در واقع n <<= 2 حالت ساده شده‌ی n = n << 2 می‌باشد.
و نتیجه معادل ضرب کردن عدد در 2 بتوان عدد سمت راست می‌باشد. مثلا اگر مقدار n برابر 6 باشد نتیجه‌ی n <<= 2 می‌شود 24.
این عمل در سطح bit انجام می‌شود و بیت‌ها به سمت چپ شیفت می‌شوند. باید توجه داشت که اگر آخرین بیت یک شود عدد
منفی خواهد شد و ارزش نتیجه دیگر با فرمول اولیه که ضرب عدد در 2 بتوان عدد سمت راست برابری نخواهد کرد.

صبا صبوحی