#位段

位段

什么是位段

在大多數(shù)的計算機系統(tǒng)中, 一個字節(jié)是由八個更小的, 稱作為位的單位組成的。位是比字節(jié)更小的單位。位只有兩個值, 1 或 0 。因此, 存儲在計算機存儲器中的一個字節(jié)可以看成由八個二進制數(shù)字形成的串。有時, 我們希望不僅對字節(jié)進行操作, 也要能對位進行操作。但是, 說明一個用作標志的普通變量至少要用一個字節(jié)---8 位, 而在某些計算機系統(tǒng)中則可能是 16 位。如果我們想在一個很大的表中存儲很多標志, 那么 "被浪費" 的內存空間是很可觀的。在 C 語言中, 一種方法是用叫做位段的構造類型來定義一個壓縮信息的結構。

位段(bit-field)是以位為單位來定義結構體(或聯(lián)合體)中的成員變量所占的空間。含有位段的結構體(聯(lián)合體)稱為位段結構。采用位段結構既能夠節(jié)省空間,又方便于操作。

位段的格式以及類型支持

type [var]: digits

其中type只能為int,unsigned int,signed int三種類型。位段名稱var是可選參數(shù),即可以省略。digits表示該位段所占的二進制位數(shù)。

    struct node
    {
    unsigned int a:4;     //位段a,占4位
    unsigned int  :0;     //無名位段,占0位
    unsigned int b:4;     //位段b,占4位
    int  :6;              //無名位段,占6位
    };
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容