Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

momopetrov avatar momopetrov 35 Точки

Bitwise Operator

Здравейте. Някой ще ми обясни ли защо вместо 6 този код ми връща числото 7

 

int num = 3;                      // 00000011
int p = 1;
int mask = num << p;       // 00000110
int result = num | mask;  
Console.WriteLine(result);

 

 

Тагове:
0
Programming Basics
Kamigawa avatar Kamigawa 750 Точки

1 | 0 => 1

1 | 1 => 1

0 | 1 => 1

0 | 0 => 0 и т.н.

0111 е 7

1
10/04/2015 18:53:43
momopetrov avatar momopetrov 35 Точки

Верно, не се бях досетил

0
Masovski avatar Masovski 211 Точки

Здравей,

Можеш да намериш повече информация за побитовите оператори тук.

1
iliqnvidenov avatar iliqnvidenov 16 Точки

Трябва единствено да запомниш начина, по който работят побитовите оператори.
Когато имаш '&' (побитово ''И''), резултатът от два сравнявани бита е винаги 0(изключен бит), освен когато и двата бита не са единица(включени).

Примери:

0000 0001
&                 => тук операцията дава резултат 0000 0000
0000 0010

0000 0001
&                 => тук операцията дава резултат 0000 0001
0000 0001


Когато имаш '|' (побитово ''ИЛИ''), резултатът от двата сравнявани бита е винаги 1(включен бит), освен когато и двата сравнявани бита са 0(изключени)
Примери:

0000 0001
|                  => тук операцията дава резултат 0000 0001
0000 0000

0000 0001
|                  => тук операцията дава резултат 0000 0001
0000 0001

 

Третият вид побитов оператор '^' (XOR) е малко по-различен от останалите два. При него, когато имаш два еднакви бита, резултатът е 0(изключен бит), независимо дали битовете са единици или нули. Когато обаче битовете са различни (0 и 1), резултатът е 1.
Примери:

0000 0000
^                 => тук операцията дава резултат 0000 0000
0000 0000


1111 0000
^                 => тук операцията дава резултат 1111 1111
0000 1111

 

1111 1111
^                => тук операцията дава резултат 0000 0000
1111 1111 

 

За повече интересни трикчета с побитови оператори Цък..

2
momopetrov avatar momopetrov 35 Точки

Доста изчерпателно, благодаря за предоставените примери

0
iliqnvidenov avatar iliqnvidenov 16 Точки

Радвам се, че успях да помогна :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.