ÔÚʵ¼ÊÓ¦ÓÃÖпÉÒÔ×oÓû§È¨ÏÞµÄÓ¦ÓÃ
ÎÒÕaÀi˵µ½µÄȨÏÞ¹ÜÀi°i¨ÊÇÒ»¸oÆÕ±e²ÉÓõĽ¨£¬Ö÷ÒªÊÇʹÓõ½¡±Î»ÔËÐÐu¡±²Ù×÷£¬& λÓeÔËËau¡¢| λ»oÔËÐÐu¡£²ÎÓeÔËËaµÄÈç¹uÊÇ10½øÖÆÊý£¬Ôo»a±»×ª»»ÖÁ2½øÖÆÊý²ÎÓeÔËËa£¬È»ºo¼ÆËa½a¹u»aÔÙת»»Îª10½øÖÆÊýÊa³o¡£
ËuµÄȨÏÞÖµÊÇÕaÑuµÄ
2^0=1£¬ÏaÓ¦2½øÊýΪ¡±0001¡a(ÔÚÕaÀi^ÎÒ±iʾ³É¡±´Î½¡±£¬¼´£º2µÄ0´Î½£¬ÏÂͬ)
2^1=2£¬ÏaÓ¦2½øÊýΪ¡±0010¡a
2^2=4£¬ÏaÓ¦2½øÊýΪ¡±0100¡a
2^3=8£¬ÏaÓ¦2½øÊýΪ¡±1000¡a
ÒªÅжÏÒ»¸oÊýÔÚijÐ(C)Êý¶Î§ÄھͿÉÒÔʹÓà & ÔËËau(ÊýÖµ´ÓÉÏÃaeµÄ±iÖеÃÀ´)
È磺7=4|2|1¡¡(ÄaÒ²¿ÉÒÔ¼oµ¥Ài½a³É7=4+2+1)
Óà & À´²Ù×÷£¬¿ÉÒÔÖªµÀ7&4¡¢7&2¡¢7&1¶¼ÊÇÕaeµÄ£¬¶øÈç¹u7&8ÔoÊǼٵÄ
&¡¢|¡¡²»ÊiϤµÄ¾ÍҪȥ²e²eÊÖ²a£¬¿´¿´ÊÇÔoôÓõÄÁË
ÏÂÃaeÀ´¿´Àý×Ó°É£º
// ¸³ÓeȨÏÞÖµ-->ɾ³ý£º8¡¢ÉÏ´«£º4¡¢Ð´Èe£º2¡¢Ö»¶Á£º1
define(¡°mDELETE¡±,8);
define(¡°mUPLOAD¡±,4);
define(¡°mWRITE¡±,2);
define(¡°mREAD¡±,1);
//vvvvvvvvvvvvvʹÓÃ˵Ã÷vvvvvvvvvvvvv
//²¿ÃžÀiµÄȨÏÞΪ(¼ÙÉeËuÓµÓд˲¿ÃŵÄËuÓÐȨÏÞ)£¬| ÊÇλ»oÔËÐÐ*u£¬²»ÊiϤµÄ¾Í²e²e×ÊÁÏ
echo mDELETE|mUPLOAD|mWRITE|mREAD ,¡±
¡°;// Ïaµ±ÓÚÊÇ°ÑÉÏÃaeµÄȨÏÞÖµ¼ÓÆðÀ´£º8+4+2+1=15
// ÉeÎÒÖ»ÓÐ upload ºÍ read ȨÏÞ£¬Ôo
echo mUPLOAD|mREAD ,¡±
¡°;//Ïaµ±ÓÚÊÇ°ÑÉÏ´«¡¢Ö»¶ÁµÄȨÏÞÖµ*Ö±ðÏa¼Ó£º4+1=5
/*
*¸³ÓeËu¶a¸oȨÏÞ¾Í*Ö±ðÈ¡µÃȨÏÞÖµÏa¼Ó£¬ÓÖ±ÈÈçijλԱ¹¤ÓµÓгýÁËɾ³ýÍaµÄȨÏÞÆaÓa¶¼ÓµÓУ¬ÄÇËuµÄȨÏÞÖµÊǶaÉÙ?
*Ó¦¸ÃÊÇ£º4+2+1£½7
*Ã÷°×ÁËÔoô¸³Öµ¸øȨÏÞ°É?
*/
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//ÅжÏijÈ˵ÄȨÏÞ¿ÉÓã¬ÉeȨÏÞÖµÔÚ$keyÖÐ
/*
*ÅжÏȨÏÞÓÃ&λÓe*u£¬
*/
$key = 13;//13£½8+4+1
if($key & mDELETE) echo ¡°ÓÐɾ³ýȨÏÞ
¡°; //8
if($key & mUPLOAD) echo ¡°ÓÐÉÏ´«È¨ÏÞ
¡°; //4
$a=$key & mWRITE; echo ¡°ÓÐдȨÏÞ
¡°.$a; //ÎÞ´ËȨÏÞ
if($key & mREAD) echo ¡°ÓжÁȨÏÞ
¡°; //1
?>
OK£¬È¨ÏÞÖÖµµÄÕaÆaÖÐÒ»¸oËa¨¾ÍÊÇÕaÑuµÄ£¬¿ÉÒÔ˵ÊǼoµ¥¸ßЧ¡£Ò²²»Öª´o¼ÒÃ÷°×ûÓУ¬²»Ã÷°×Ҳû¹Øϵ£¬¼ÇסÀý×Ó¾ÍÐÐÁË¡£Ç°Ìa¾ÍÊÇ×oºÃȨÏÞÖµµÄÖ²¼£¬¼´ÄǸo1¡¢2¡¢4¡¢8¡¢16¡.(ÕaÀi»¹Óиo˳ÐoÎÊÌa£¬Ô½¸ß¼¶µÄȨÏÞ¾ÍÒªÔ½¸ßµÄȨÏÞÖµ£¬±ÈÈçÉÏÃaeµÄÀý×ÓËuÑÝʾµÄɾ³ýȨÏÞ)¡£ÓÐÁËȨÏÞÖ²¼±i¾Í¿ÉÒÔÈ*¶¨¸øij¸oÈËʲôȨÏÞÁË£¬Äa¼oµ¥µÄÀi½a³ÉÒªÄĸoȨÏ޾ͼÓÉÏÏaÓ¦µÄȨÏÞÖµ°É¡£
Õa¸o½¨ºÜºÃÓõģ¬È±µa¾ÍÊÇÈç¹uȨÏÞÖ²¼µÃϸµÄ»°£¬ÄÇôȨÏÞÖµ»aÔ½À´Ô½´o£¬Äa×Ô¼ºÏeÏe£¬2µÄ¼¸´Î½¡¢Èç¹uËuÓеÄȨÏÞ¶¼ÒªÔoÊÇÈ«²¿Ïa¼Ó¡£²»¹ý¶ÔÓÚÒ»°aµÄȨÏÞÀ´ËµÕa¸oÒѾ×a¹»ÁË¡£
ÏÂÃaeÊÇÐ(C)¼oµ¥Ó¦ÓþÙÀý
(1) ÅжÏintÐͱaÁ¿aÊÇÆaeÊý»¹ÊÇżÊý
a&1 = 0 żÊý
a&1 = 1 ÆaeÊý
(2) È¡intÐͱaÁ¿aµÄµÚkλ (k=0,1,2¡¡sizeof(int))£¬¼´a>>k&1
(3) ½«intÐͱaÁ¿aµÄµÚkλÇa0£¬¼´a=a&~(1<
<>(4) ½«intÐͱaÁ¿aµÄµÚkλÖÃ1£¬ ¼´a=a|(1<
<>*(5) intÐͱaÁ¿Ñ»×oÒÆk´Î£¬¼´a=a<>16-k (Éesizeof(int)=16)**
*(6) intÐͱaÁ¿aÑ»ÓÒÒÆk´Î£¬¼´a=a>>k|a<<16-k (Éesizeof(int)=16)**
(7)ÕuÊýµÄƽ¾uÖµ
¶ÔÓÚÁ½¸oÕuÊýx,y£¬Èç¹uÓà (x+y)/2 Çoƽ¾uÖµ£¬»a²uÉuÒç³o£¬ÒoΪ x+y ¿ÉÄÜ»a´oÓÚINT_MAX£¬µ«ÊÇÎÒÃÇÖªµÀËuÃǵÄƽ¾uÖµÊǿ϶¨²»»aÒç³oµÄ£¬ÎÒÃÇÓÃÈçÏÂËa*¨£º
int average(int x, int y) //*µ»ØX,Y µÄƽ¾uÖµ
{
return (x&y;)+((x^y)>>1);
}
(8)ÅжÏÒ»¸oÕuÊýÊDz»ÊÇ2µÄÃÝ,¶ÔÓÚÒ»¸oÊý x >= 0£¬ÅжÏËuÊDz»ÊÇ2µÄÃÝ
boolean power2(int x)
{
return ((x&(x-1))==0)&&(x!=0)£»
}
(9)²»ÓÃtemp½»»»Á½¸oÕuÊý
void swap(int x , int y)
{
x ^= y;
y ^= x;
x ^= y;
}
(10)¼ÆËa¾ø¶ÔÖµ
int abs( int x )
{
int y ;
y = x >> 31 ;
return (x^y)-y ; //or: (x+y)^y
}
(11)È¡Ä£ÔËËaת»¯³ÉλÔËËa (ÔÚ²»²uÉuÒç³oµÄÇe¿oÏÂ)
a % (2^n) µÈ¼ÛÓÚ a & (2^n ¨C 1)
*(12)³Ë¨ÔËËaת»¯³ÉλÔËËa (ÔÚ²»²uÉuÒç³oµÄÇe¿oÏÂ)**
a * (2^n) µÈ¼ÛÓÚ a<< n
*(13)³ý¨ÔËËaת»¯³ÉλÔËËa (ÔÚ²»²uÉuÒç³oµÄÇe¿oÏÂ)**
a / (2^n) µÈ¼ÛÓÚ a>> n
Àý: 12/8 == 12>>3
(14) a % 2 µÈ¼ÛÓÚ a & 1
(15) if (x == a) x= b;
¡¡¡¡ else x= a;
¡¡¡¡ µÈ¼ÛÓÚ x= a ^ b ^ x;
*(16) x µÄ Ïa´Êý ±iʾΪ (~x+1)**
ÔÚ32λϵͳÉϲ»ÒªÓÒÒƳ¬¹ý32λ,²»ÒªÔÚ½a¹u¿ÉÄܳ¬¹ý 32 λµÄÇe¿oÏÂ×oÒÆ
ÒÔÉÏÕaƪÀÏÉu³£Ì¸PHPλÔËËaµÄÓÃ;¾ÍÊÇС±a*ÖÏi¸ø´o¼ÒµÄÈ«²¿ÄÚÈÝÁË£¬Ï£ÍuÄܸø´o¼ÒÒ»¸o²Î¿¼£¬Ò²Ï£Íu´o¼Ò¶a¶aÖ§³Ö½Å±¾Ö®¼Ò¡£