位運(yùn)算應(yīng)用口訣:  清零取位要用與,某位置一可用或,若要取反和交換,輕輕松松用異或!  移位運(yùn)算要點(diǎn)  1 它們都是雙目運(yùn)算符,兩個(gè)" />
TDA2030功放電路圖 電動(dòng)車充電器電路圖 電子電路 功放電路 電子制作 集成塊資料 電子報(bào) pcb 變壓器 元器件知識(shí) 逆變器電路圖 電路圖 開(kāi)關(guān)電源電路圖 傳感器技術(shù) led 電磁兼容
電子電路圖
當(dāng)前位置: 首頁(yè) > 電子電路 > 設(shè)計(jì)編程

介紹單片機(jī)C51位運(yùn)算應(yīng)用技巧

時(shí)間:2018-11-23 08:44:09來(lái)源:網(wǎng)絡(luò) 作者:admin 點(diǎn)擊:
介紹單片機(jī)C51位運(yùn)算應(yīng)用技巧

位運(yùn)算應(yīng)用口訣:  清零取位要用與,某位置一可用或,若要取反和交換,輕輕松松用異或!  移位運(yùn)算要點(diǎn)  1 它們都是雙目運(yùn)算符,兩個(gè)

  (4) 將int型變量a的第k位置1, 即a=a|(1<

  (5) int型變量循環(huán)左移k次,即a=a<

  (6) int型變量a循環(huán)右移k次,即a=a>>k|a<<16-k (設(shè)sizeof(int)=16)(7)整數(shù)的平均值

  對(duì)于兩個(gè)整數(shù)x,y,如果用 (x+y)/2 求平均值,會(huì)產(chǎn)生溢出,因?yàn)?x+y 可能會(huì)大于INT_MAX,但是我們知道它們的平均值是肯定不會(huì)溢出的,我們用如下算法:

  int average(int x, int y) //返回X,Y 的平均值{

  return (x&y)+((x^y)>>1);

  }

  (8)判斷一個(gè)整數(shù)是不是2的冪,對(duì)于一個(gè)數(shù) x >= 0,判斷他是不是2的冪boolean power2(int x)

  {

  return ((x&(x-1))==0)&&(x!=0);

  }

  (9)不用temp交換兩個(gè)整數(shù)

  void swap(int x , int y)

  {

  x ^= y;

  y ^= x;

  x ^= y;

  }

  (10)計(jì)算絕對(duì)值

  int abs( int x )

  {

  int y ;

  y = x >> 31 ;

  return (x^y)-y ; //or: (x+y)^y

  }

  (11)取模運(yùn)算轉(zhuǎn)化成位運(yùn)算 (在不產(chǎn)生溢出的情況下):a % (2^n) 等價(jià)于 a & (2^n - 1)(12)乘法運(yùn)算轉(zhuǎn)化成位運(yùn)算 (在不產(chǎn)生溢出的情況下):a * (2^n) 等價(jià)于 a<< n(13)除法運(yùn)算轉(zhuǎn)化成位運(yùn)算 (在不產(chǎn)生溢出的情況下):a / (2^n) 等價(jià)于 a>> n例: 12/8 == 12>>3

  (14) a % 2 等價(jià)于 a & 1

  (15) if (x == a) x= b;

  else x= a;

  等價(jià)于 x= a ^ b ^ x;

  (16) x 的 相反數(shù)表示為 (~x+1)

  (17) 實(shí)現(xiàn)最低n位為1,其余位為0的位串信息:~(~0 << n)(18)截取變量x自p位開(kāi)始的右邊n位的信息:(x >> (1+p-n)) & ~(~0 << n)(19)截取old變量第row位,并將該位信息裝配到變量new的第15-k位:new |= ((old >> row) & 1) << (15 – k)(20)設(shè)s不等于全0,代碼尋找最右邊為1的位的序號(hào)j:

  for(j = 0; ((1 << j) & s) == 0; j++) ;

容-源-電-子-網(wǎng)-為你提供技術(shù)支持

本文地址:http://www.4811775.com/dz/22/15429340782606.shtml


本文標(biāo)簽:


.
首頁(yè) 上一頁(yè)12
頂一下
0%
返回首頁(yè)
0
0%

------分隔線----------------------------
發(fā)表評(píng)論
請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
表情:
名稱: E-mail: 驗(yàn)證碼: 匿名發(fā)表
發(fā)布文章,推廣自己產(chǎn)品。
熱門標(biāo)簽