国产探花免费观看_亚洲丰满少妇自慰呻吟_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類也可以很容易的用于空間要求高的場合。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 朝阳县| 徐水县| 东乌珠穆沁旗| 且末县| 樟树市| 岢岚县| 垣曲县| 丰县| 常德市| 呼伦贝尔市| 盐池县| 四平市| 鄂尔多斯市| 常熟市| 资溪县| 夏津县| 龙口市| 巴林右旗| 南平市| 吴江市| 周至县| 大田县| 武山县| 双江| 青州市| 龙山县| 武威市| 青铜峡市| 宁阳县| 遂宁市| 九龙城区| 陈巴尔虎旗| 武平县| 亳州市| 连城县| 遵化市| 瑞昌市| 陇川县| 运城市| 德庆县| 兴城市|