最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++位操作的常見用法小結(jié)

 更新時(shí)間:2014年09月05日 10:48:14   投稿:shichen2014  
這篇文章主要介紹了C++位操作的常見用法,包括了判斷奇偶、交換兩個(gè)數(shù)、正負(fù)轉(zhuǎn)換、求絕對值等,需要的朋友可以參考下

本文以實(shí)例形式對C++位操作的常見用法進(jìn)行了總結(jié)。分享給大家供大家參考之用。具體方法如下:

在C++中位操作有6種基本操作符,按照優(yōu)先級分別是:

取反   ~
移位   <<  >>
與      &
異或   ^
或      |

常用的用法有:

1 判斷偶數(shù),判斷最低位是0還是1即可,比求???/p>

x % 2 != 0    //x正負(fù)都可以判斷;不用x%2 == 1,因?yàn)槿绻鹸為負(fù)奇數(shù),x%2=-1
x & 0x1 == 0 

2 交換兩個(gè)數(shù),不用中間變量

void mySwap(int &a, int &b)
{
  if(a == b)  //相等時(shí)也能得到正確結(jié)果,但是沒必要了
    return;

  a ^= b;
  b ^= a;
  a ^= b;
}

3 求整數(shù)的二進(jìn)制表示中1的個(gè)數(shù),不用一個(gè)一個(gè)的移位判斷

int numOfBit1(int a)
{
  int cnt = 0;
  while(a != 0)
  {
    ++cnt;
    a &= a - 1;  //將最右邊的1置為0;正負(fù)都可計(jì)算,負(fù)數(shù)是按照補(bǔ)碼計(jì)算的,最后的符號位也被統(tǒng)計(jì)
  }
  return cnt;
}

4 正負(fù)轉(zhuǎn)換,不使用正負(fù)號。不管正數(shù)負(fù)數(shù),取反后加1即可

int a = 1;
a = ~a + 1;  //a變成-1
a = ~a + 1;  //a又變成1

5 求絕對值,不判斷正數(shù)負(fù)數(shù),不使用正負(fù)號,返回絕對值

int myAbs(int a)
{
  int sign = a >> 31;    //如果a為正數(shù),sign為0;否則sign為-1,即0xFFFFFFFF
  return (a^sign) - sign;  //(a^0)-0 = a, (a^-1)-(-1) = ~a+1 = -a ,a^-1即為a取反
}

希望本文所述對大家C++程序設(shè)計(jì)的的學(xué)習(xí)有所幫助。

相關(guān)文章

  • C++構(gòu)造和解析Json的使用示例

    C++構(gòu)造和解析Json的使用示例

    今天小編就為大家分享一篇關(guān)于C++構(gòu)造和解析Json的使用示例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 基于c++計(jì)算矩形重疊面積代碼實(shí)例

    基于c++計(jì)算矩形重疊面積代碼實(shí)例

    這篇文章主要介紹了基于c++計(jì)算矩形重疊面積代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • C語言多種方法實(shí)現(xiàn)一個(gè)函數(shù)左旋字符串中K個(gè)字符

    C語言多種方法實(shí)現(xiàn)一個(gè)函數(shù)左旋字符串中K個(gè)字符

    這篇文章主要為大家介紹了C語言多種方法實(shí)現(xiàn)一個(gè)函數(shù),可以左旋字符串中K個(gè)字符,文中附含詳細(xì)的示例講解,有需要的朋友可以借鑒參考下
    2021-10-10
  • Windows窗口消息實(shí)例詳解

    Windows窗口消息實(shí)例詳解

    這篇文章主要介紹了Windows窗口消息,以實(shí)例形式詳細(xì)羅列了Windows窗口消息,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-05-05
  • C++中的explicit關(guān)鍵字詳解

    C++中的explicit關(guān)鍵字詳解

    這篇文章主要介紹了C++中的explicit關(guān)鍵字詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • Qt?5.9使用VTK顯示點(diǎn)云的詳解詳解

    Qt?5.9使用VTK顯示點(diǎn)云的詳解詳解

    這篇文章主要介紹了Qt?5.9使用VTK顯示點(diǎn)云,主要包括PCL安裝及在VS2013中使用PCL的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • C++學(xué)習(xí)之命名空間詳解

    C++學(xué)習(xí)之命名空間詳解

    C++中,命名空間(namespace)是一個(gè)重要的概念。命名空間可以為函數(shù)、變量、類等定義作用域,避免與其他定義的名稱發(fā)生沖突。下面我們就來了解一下如何使用C++命名空間,以及一些常見的操作吧
    2023-04-04
  • c++分離講解模板的概念與使用

    c++分離講解模板的概念與使用

    人們需要編寫多個(gè)形式和功能都相似的函數(shù),因此有了函數(shù)模板來減少重復(fù)勞動;人們也需要編寫多個(gè)形式和功能都相似的類,于是 C++ 引人了類模板的概念,編譯器從類模板可以自動生成多個(gè)類,避免了程序員的重復(fù)勞動
    2022-04-04
  • C/C++ 動態(tài)數(shù)組的創(chuàng)建的實(shí)例詳解

    C/C++ 動態(tài)數(shù)組的創(chuàng)建的實(shí)例詳解

    這篇文章主要介紹了C/C++ 動態(tài)數(shù)組的創(chuàng)建的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家掌握這樣的功能,需要的朋友可以參考下
    2017-10-10
  • 淺析C/C++中sort函數(shù)的用法

    淺析C/C++中sort函數(shù)的用法

    做項(xiàng)目的時(shí)候,排序是一種經(jīng)常要用到的操作。如果每次都自己寫個(gè)冒泡之類的O(n^2)排序,不但程序容易超時(shí),而且浪費(fèi)寶貴的時(shí)間,還很有可能寫錯(cuò)。STL里面有個(gè)sort函數(shù),可以直接對數(shù)組排序,復(fù)雜度為n*log2(n)。
    2014-09-09

最新評論

周宁县| 马边| 德格县| 重庆市| 修水县| 武穴市| 南木林县| 社会| 北京市| 平阳县| 巫山县| 江安县| 西宁市| 广河县| 志丹县| 潼南县| 涡阳县| 太谷县| 巴东县| 乐清市| 惠来县| 太仓市| 太白县| 缙云县| 榆中县| 山西省| 绥宁县| 华宁县| 卢龙县| 太原市| 开鲁县| 永吉县| 霍山县| 扬州市| 上林县| 双桥区| 华宁县| 扶绥县| 鹿邑县| 秦皇岛市| 盐山县|