елементарен въпрос
3 отговора
267 прегледа
елементарен въпрос
много се извинявам, ама ако някои може да ми преведе
следните два С операции:
Param | = (VALUE)
Param ^= (VALUE & Size)
става въпрос за |= и ^=, другото мисля, че е "и"
следните два С операции:
Param | = (VALUE)
Param ^= (VALUE & Size)
става въпрос за |= и ^=, другото мисля, че е "и"
Re: елементарен въпрос
Param |= (value) - взима се стойността на param, прави се побитово ИЛИ и резултата отново се записва в Param. Може да ти е полезно, ако value съдържа един или няколко флага, които искаш да вдигнеш, а в Param пазиш текущите стойности на флаговете.
Param ^= (VALUE & Size) - подобно на горното, но ^ е изключващо ИЛИ. При горната аналогия, обръщаш стойностите на флаговете, за които битовете от израза (VALUE & Size) имат стойност 1. (Value & Size) наистина е побитово И, но не се сещам каква е ползвата от операцията ... може би Size съдържа 1 на значещите места на VALUE.
Param ^= (VALUE & Size) - подобно на горното, но ^ е изключващо ИЛИ. При горната аналогия, обръщаш стойностите на флаговете, за които битовете от израза (VALUE & Size) имат стойност 1. (Value & Size) наистина е побитово И, но не се сещам каква е ползвата от операцията ... може би Size съдържа 1 на значещите места на VALUE.
Re: елементарен въпрос
Логическото И служи за изчистване на битове - ако битът е 1 се запазва старата стойност, ако е 0 се изчиства в 0. Противоположно на ИЛИ-то 
Целта оправдава средствата
Целта оправдава средствата