国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

位域

2019-11-08 02:24:28
字體:
來源:轉載
供稿:網友

位域

當我們需要節省內存,比如某個變量值只有0和1兩種狀態,或者兩個值都只是不超過127的數,如何節省內存呢?當然可以直接定義變量進行位操作,但是位操作往往會涉及到較多的& |之類的操作,往往不能讓人一眼就明白要表達的意思。實際上,使用“位域”可以輕松實現上述需求,并且可讀性較強。 - 使用位操作: 代碼:

int main(){ unsigned char a=0; a=a&0x0f|0xB0; a=a&0xf0|0x05; cout<<(int)a<<endl; cout<<hex<<(int)a<<endl; return 0;}

效果: 這里寫圖片描述

這樣能得到預期的結果,但是實際上比較繁瑣,別人看你的代碼的時候需要仔細看你的位操作才能明白是干嘛的。

使用位域 位域其實就是將一個變量看做一個結構,而每一個域對應操作某一些位,在使用的時候需要保證不溢出,不然就出問題了 代碼:

struct a{unsigned char b : 4;unsigned char c : 4;}a;int main(){struct a a;cout <<"size:" <<sizeof a << endl<<endl;for (a.b = 1; a.b<10; ++a.b){ for (a.c = 1; a.c<10; ++a.c) { if (a.b % 3 != a.c % 3) cout << (int)(a.b) << " " << (int )(a.c) << " "; else cout<<" "; } cout << endl;}return 0;}

這個題目據說是微軟的一個面試題,具體題目記不清了,大概是只允許使用一字節變量遍歷一個9*9的棋盤,然后干啥、、、 效果 這里寫圖片描述

位域操作相對位操作來說直接明了得多,容易閱讀,實際上c++的bitset類也可以很容易的用于空間要求高的場合。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 瑞安市| 安溪县| 吴旗县| 永兴县| 苏尼特左旗| 常德市| 辛集市| 安西县| 肥乡县| 舟曲县| 陆河县| 修文县| 怀集县| 华坪县| 辰溪县| 马尔康县| 甘孜| 定日县| 黔西| 乐至县| 晋中市| 河源市| 金塔县| 磐安县| 茶陵县| 五家渠市| 青浦区| 茌平县| 恩施市| 大安市| 繁昌县| 内黄县| 南皮县| 墨玉县| 高要市| 禄丰县| 定西市| 綦江县| 自治县| 尚义县| 隆林|