大學裡的課程很少有講到位域這麼個東西,甚至是位操作符都沒有重點講。 事實上,位操作在算法優化上是可能起到關鍵性作用的。 & 按位與 | 按位或 ^ 按位異或 ~ 按位取反 << 左移 >> 右移 這些便是六種操作符,那麼什麼是位域呢? 有時候信息的存儲並不需要一個完整的字節,只需要占用幾個甚至一個二進制位。為此,誕生了位域這麼個東西,用來節省存儲空間,簡化數據處理。 定義方法: struct 位域結構名 {位域列表}; 如: [cpp] struct bit { int x:8; //長度為8 int y:2; //長度為2 int z:6 //長度為6 }; 如上y,z實際上儲存在一個字節裡,但是一個位域必須儲存在一個字節裡,不能誇字節,如果z的長度為7,那麼z的存儲將會新起一個字節。 也可以自定義新起一個字節,使用空域: [cpp] int :0; www.2cto.com 位域可以無位域名,這樣的位域用來填充或者調整位置,由於沒有名字,無法使用 [cpp] int :2; [cpp] //使用方法 bit.x=1; bit.y=1; bit.z=1;