Какво означава 7u ?
using System;
class BitsExchange
{
static void Main()
{
Console.Write("Enter your number: ");
long NumberG = long.Parse(Console.ReadLine());
Console.WriteLine(Convert.ToString(NumberG, 2).PadLeft(32, '0'));
NumberG = ((~(7u << 24 | 7u << 3)) & NumberG) | (((NumberG & (7u << 3)) << 21) | ((NumberG & (7u << 24)) >> 21));
Console.WriteLine(NumberG);
Console.WriteLine(Convert.ToString(NumberG, 2).PadLeft(32, '0'));
}
}
Колеги, някой може ли да ми обясни каква роля играе това 7u в дадения код ?
Това за суфикса е ясно, но ме интересува какво точно прави и защо като го сменя с друго (пример: 3u,4u,5u и т.н.) се променя.
Седмицата в този случай се използва като маска, защото представена двоично, трите и най-младши бита са единици, което помага при поставената задача. Като гледам решението предполагам , че трябва да се сменят местата на битове от позиции 4,5,6 с тези на позиции 25,26,27 ( броейки от 0 ) или нещо подобно, не ми се решават oneliner-и.
Ако използваш 3u, например, получаваш двоично за маска:
0000 0000 0000 0000 0000 0000 0000 0011
и съответно побитовата аритметика ще даде различен резултат