1. 程式人生 > >Bit操作 和C++標準庫BitSet

Bit操作 和C++標準庫BitSet

關於 C實現資料的Bit

操作和C++ 標準庫 BitSet累的比較總結。

1,設定某位為1 

 unsigned char num = 10;  // 1010 bit: from right to left
 const size_t pos = 2;  num |= 1 << pos;     結果:num = 14 // 1110; bitset  操作的  std::bitset<5> foo(std::string("01010"));
 foo.set(pos, 1); 2, 設定某位為0 num &= ~(1<<pos); foo.set(pos,0); 3, 某位取反(toggle) num ^= (1<<pos) foo.flip(pos); 4, Check  pos Bit bit
= (num >> pos)&1; bit = foo[pos]; 5,  把第n 個改寫成x num ^= (-x ^ number)&(1<< n); foo.set(n, x); 備註:   bit 位數從0 開始, 從右向左的順序。

相關推薦

Bit操作 C++標準BitSet

關於 C實現資料的Bit 操作和C++ 標準庫 BitSet累的比較總結。 1,設定某位為1   unsigned char num = 10;  // 1010 bit: from right to left  const size_t pos = 2;  nu

什麽是 C C ++ 標準

lec 內存占用 串處理 函數 背景 成員 流程 出版 contain 簡要介紹編寫C/C ++應用程序的領域,標準庫的作用以及它是如何在各種操作系統中實現的。我已經接觸C++一段時間了,一開始就讓我感到疑惑的是其內部結構:我所使用的內核函數和類從何而來? 誰發明了它們?

C++標準bitset型別

    bitset用於處理二進位制位集。是一種類模板。 #include<bitset> using std::bitsset 1. 定義和初始化       在定義bitset時,要明確bitset是多少位,須在尖括號中制定它的長度值。 bitset<

C++標準vector類型的使用操作總結

種類 style 開始 spa log string string類 gpo targe   vector是一種類型對象的集合,它是一種順序容器,容器中的所有對象必須都是同一種類型。vector的對象是可以動態生長的,這說明它在初始化時可以不用指定大小,而是再使用時根據元素

C++標準中棧隊列的一些基本操作

AS PE 元素 返回值 nbsp 返回 void 入隊 style 棧:   <1>使用棧,要包含頭文件:#include <stack>   <2>定義棧,stack<Type> s; 其中Type為數據類型,可以是基本數

C C++ 的標準分別有自己的 locale 操作方法,C 標準的 locale 設定函式是 setlocale(),而 C++ 標準有 locale 類流物件的 imbue() 方法(gcc使用zh_CN.GBK,或者zh_CN.UTF-8,VC++使用Chinese_People&#

轉自:http://zyxhome.org/wp/cc-prog-lang/c-stdlib-setlocale-usage-note/  [在此向原文作者說聲謝謝!若有讀者看到文章轉載時請寫該轉載地址,不要寫我的BLOG地址。尊重他人的勞動成果 ^_^ ] C 和 C++ 的標準庫分別有自己的

C 標準IO緩沖區內核緩沖區的區別

io緩沖區 lose 信息 同一文件 upload 同步 load IT 覆蓋 1.C標準庫的I/O緩沖區 UNIX的傳統 是Everything is a file,鍵盤、顯示器、串口、磁盤等設備在/dev 目錄下都有一個特殊的設備文件與之對應,這些設

c++標準函數棧隊列

regex nbsp 頭文件 word pretty tac reg 包含 AS 使用標準庫的棧和隊列時, 應包含先關頭文件. 在棧中應包含頭文件: #include< stack > 定義: stack< int > s; s.empty();

C++標準標準模板【轉】

(轉自:https://blog.csdn.net/rl529014/article/details/51154798) C++強大的功能來源於其豐富的類庫及庫函式資源。C++標準庫的內容總共在50個標準標頭檔案中定義。 在C++開發中,要儘可能地利用標準庫完成。這樣做的直接好處包括

C標準I/OLinux檔案I/O

I/O分類:     有兩種I/O,一是檔案I/O,而我們c語言的封裝叫標準I/O,他們有什麼區別那?顯然標準I/O是基於檔案I/O的,標準IO呼叫了檔案IO,也優化了檔案IO,例如引入快取機制。     所以C標準

C++標準標準模板

pan 設置 自動 斷言 tracking 主機 基本數據類型 tdd 臨時   C++強大的功能

C標準——字串處理函式string.hwchar.h

string.h中包含了所有的字串處理函式,也包含了記憶體處理函式,因為這些記憶體處理函式(如比如、複製、搜尋)的功能與字串處理函式功能類似。我們是用通用指標來指向記憶體塊的,通用指標可以用char*型別(傳統C語言),也可以用void*型別(標準C語言)。每個函式都

在64位Ubuntu14.04LTS上編譯連結32位彙編程式(使用c標準)需要如何配置配置環境

1.安裝32位c標準庫libc6:i386 aptitude install libc6:i386 2.安裝gcc-4.8-multilib sudo aptitude install gcc-4.8-multilib

C++基礎:C++標準之棧(stack)佇列(queue)

在C++標準庫(STL)中,實現了棧和佇列,方便使用,並提供了若干方法。以下作簡要介紹。 1、棧(stack)說明及舉例: 使用棧,要先包含標頭檔案 : #include<stack> 定義棧,以如下形式實現: stack<Type> s; 其中Ty

C++標準型別 bitset及其應用

        bitset 物件用每一個bit位儲存0或1,可以用來標記存在或者不存在,位置下標和儲存內容組成一個key-value對。用bit標記的好處就是可以節省記憶體空間,特別是應用於海量資料處理中。         例如以下幾個問題:(1) 已知某個檔案內包含一些

C++棧佇列標準函式

棧 使用標準庫的棧和佇列時, 應包含先關標頭檔案. 在棧中應包含標頭檔案: #include< stack > 定義: stack< int > s; s.empty

C++ Primer】標準bitset型別

/* *標準庫bitset型別 *Zhi-Yun Deng *2013-10-31 */ #include <iostream> #include <bitset> //標準庫bitset型別標頭檔案 #include <string>

C 標準基礎 IO 操作總結

一、操作控制代碼開啟檔案其實就是在作業系統中分配一些資源用於儲存該檔案的狀態資訊及檔案的標識,以後使用者程式可以用這個標識做各種讀寫操作,關閉檔案則釋放佔用的資源。開啟檔案的函式:#include <stdio.h> FILE *fopen(constchar *

C++標準bitset型別

雖然在C++的基本型別中,似乎沒有二進位制這個重要的型別,但是在C++標準庫中卻提供了能夠處理二進位制位的有序集合型別,這就是bitset型別,使用該型別時需要先包含該標頭檔案並進行宣告: #include <bitset> using namespace st

C++標準獲取時間、簡單的檔案操作

參考文章: 只是在以上的一堆,借鑑了一個簡單的用C++標準庫的日期及其格式化程式。 程式如下:(QT下面寫的) #include <chrono> #include <ctime> #include <string> #in