Cè¯è¨æä¾çä½è¿ç®ï¼ è¿ç®ç¬¦ å«ä¹
& æä½ä¸
| æä½æ
⧠æä½å¼æ
â½ åå
<< 左移
>> å³ç§» 说æï¼1ãä½è¿ç®ç¬¦ä¸é¤â½ä»¥å¤ï¼å为äºç®(å
)è¿ç®ç¬¦ï¼å³è¦æ±ä¸¤ä¾§åæä¸ä¸ªè¿ç®äºéã2ãè¿ç®éåªè½æ¯æ´å½¢æå符åçæ°æ®ï¼ä¸è½ä¸ºå®åæ°æ®ã âæä½ä¸âè¿ç®ç¬¦ï¼&ï¼ è§å®å¦ä¸ï¼0&0=0 0&1=0 1&0=0 1&1=1 ä¾ï¼3&5=?
å
æ3å5以补ç 表示ï¼åè¿è¡æä½ä¸è¿ç®ã3çè¡¥ç ï¼ 00000011
5çè¡¥ç ï¼ 00000101 --------------------------------------------------------------------------------
&: 00000001 3&5=1 âæä½æâè¿ç®ç¬¦ï¼|ï¼ è§å®å¦ä¸ï¼0|0=0 0&1=1 1&0=1 1&1=1 ä¾ï¼060|017=?
å°å
«è¿å¶æ°60ä¸å
«è¿å¶æ°17è¿è¡æä½æè¿ç®ã 060 00110000
017 00001111 --------------------------------------------------------------------------------
|: 00111111 060|017=077 âå¼æâè¿ç®ç¬¦ï¼â§ï¼ï¼ä¹ç§°XORè¿ç®ç¬¦ è§å®å¦ä¸ï¼0â§0=0 0â§1=1 1â§0=1 1â§1=0 ä¾ï¼57â§42=?
å°åè¿å¶æ°57ä¸åè¿å¶æ°42è¿è¡æä½å¼æè¿ç®ã 57 00111001
42 00101010 --------------------------------------------------------------------------------
â§: 00010011 57â§42=19 âååâè¿ç®ç¬¦ï¼â½ï¼ è§å®å¦ä¸ï¼â½0=1 â½1=0 ä¾ï¼â½025=ï¼
对å
«è¿å¶æ°25ï¼å³äºè¿å¶0000000000010101ï¼æä½æ±åã0000000000010101
â
1111111111101010 â½025=177752 左移è¿ç®ç¬¦ï¼<<ï¼ ã å°ä¸ä¸ªæ°çäºè¿ä½å
¨é¨å·¦ç§»è¥å¹²ä½,è¥é«ä½å·¦ç§»å溢åºï¼åèå¼ï¼ä¸èµ·ä½ç¨ã ä¾ï¼a=a<<2
å°açäºè¿å¶æ°å·¦ç§»2ä½ï¼å³è¡¥0ã
è¥a=15,å³äºè¿å¶æ°00001111ï¼åa 00001111
â â
a<<1 00011110
â â
a<<2 00111100 æåa=60 å³ç§»è¿ç®ç¬¦ï¼>>ï¼ ã å°ä¸ä¸ªæ°çäºè¿ä½å
¨é¨å³ç§»è¥å¹²ä½,ä½ä½ç§»åºé¨åèå¼ã ä¾ï¼a=a>>2
å°açäºè¿å¶æ°å³ç§»2ä½ï¼å·¦è¡¥0ã
è¥a=15,å³äºè¿å¶æ°00001111ï¼åa 00001111
â â
a>>1 00000111
â â
a>>2 00000011 æåa=3ä½è¿ç®ç¬¦ä¸èµå¼è¿ç®ç¬¦ç»åå¯ä»¥ç»ææ©å±çèµå¼è¿ç®ç¬¦ å¦ï¼&=,|=,>>=,<<=,â§= ä¾ï¼a&=bç¸å½äºa=a&b a<<=2ç¸å½äºa=a<<2ä¸åé¿åº¦çæ°æ®è¿è¡ä½è¿ç® å¦æ两个æ°æ®é¿åº¦ä¸åï¼ä¾å¦longååintåï¼è¿è¡ä½è¿ç®æ¶ï¼å¦a&b,èa为longåï¼b为intåï¼ï¼ç³»ç»ä¼å°äºè
æå³ç«¯å¯¹é½ãå¦æb为æ£æ°ï¼å左侧16ä½è¡¥æ»¡0ãè¥b为è´ï¼å·¦ç«¯åºè¡¥æ»¡1ãå¦æb为æ 符å·æ´æ°åï¼å左端添满0ãä½è¿ç®ä¸¾ä¾
ä¾ï¼åä¸ä¸ªæ´æ°aä»å³ç«¯å¼å§ç4â½7ä½ èèå¦ä¸ï¼1ãå
æ¯aå³ç§»4ä½,å³a>>4 2ã设置ä¸ä¸ªä½4ä½å
¨ä¸º0çæ°ï¼å³â½(â½0<<4) 3ãå°ä¸é¢ä¸¤å¼è¿è¡ä¸è¿ç®ï¼å³a>>4&â½(â½0<<4) ç¨åºå¦ä¸ï¼ main() {unsigned a,b,c,d;</p><p> scanf("%o",&a);</p><p> b=a>>4;</p><p> c=â½(â½0<<4);</p><p> d=b&c;</p><p> printf("%o\n%o\n",a,b);</p><p> } ç»æï¼331â 331(açå¼,å
«è¿å¶) 15 (dçå¼,å
«è¿å¶)ä¾ï¼å¾ªç¯ç§»ä½ãè¦æ±å°aè¿è¡å³å¾ªç¯ç§»ä½ãå³aå³å¾ªç¯ç§»nä½ï¼å°aä¸åæ¥å·¦é¢(16-n)ä½å³ç§»nä½ãç°å设两个åèåæ¾ä¸ä¸ªæ´æ°ãå¦å³å¾ã èèå¦ä¸ï¼1ãå
å°aå³ç«¯nä½æ¾å°bä¸çé«nä½ä¸,å³ï¼b=a<<(16-n) 2ãå°aå³ç§»nä½ï¼å
¶å·¦é¢é«ä½nä½è¡¥0ï¼å³c=a>>n 3ãå°cä¸bè¿è¡æä½æè¿ç®ï¼å³c=c|b ç¨åºå¦ä¸ï¼ main() {unsigned a,b,c;int n:</p><p> scanf("a=%o,n=%d",&a,&n);</p><p> b=a<<(16-n);</p><p> c=a>>n;</p><p> c=c|b;</p><p> printf("%o\n%o",a,c);</p><p> } ç»æï¼a=157653,n=3â 331(açå¼,å
«è¿å¶) 15 (dçå¼,å
«è¿å¶)ä½æ®µ
æè°ä½æ®µæ¯ä»¥ä½ä¸ºåä½å®ä¹é¿åº¦çç»æä½ç±»åä¸çæåã ä¾ï¼struct packed-data {unsigned a:2;</p><p> unsigned b:6;</p><p> unsigned c:4;</p><p> unsigned d:4;</p><p> int i;</p><p> }data;
温馨提示:答案为网友推荐,仅供参考