亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
      全國  |             |          |          |          |          |         
        當(dāng)前位置:計算機等級 > 二級考試 > C語言程序設(shè)計 > C語言輔導(dǎo) > 文章內(nèi)容
        

      全國計算機等級考試二級C語言入門教程(120)

      中華IT學(xué)院   【 】  [ 2016年5月25日 ]

      位域


      有些信息在存儲時,并不需要占用一個完整的字節(jié),而只需占幾個或一個二進制位。例如在存放一個開關(guān)量時,只有
      0和1 兩種狀態(tài),用一位二進位即可。為了節(jié)省存儲空間,并使處理簡便,C語言又提供了一種數(shù)據(jù)結(jié)構(gòu),稱為“位
      域”或“位段”。所謂“位域”是把一個字節(jié)中的二進位劃分為幾個不同的區(qū)域, 并說明每個區(qū)域的位數(shù)。每個域有
      一個域名,允許在程序中按域名進行操作。這樣就可以把幾個不同的對象用一個字節(jié)的二進制位域來表示。一、位域
      的定義和位域變量的說明位域定義與結(jié)構(gòu)定義相仿,其形式為:
      struct 位域結(jié)構(gòu)名
      { 位域列表 };
      其中位域列表的形式為: 類型說明符 位域名:位域長度
      例如:


      struct bs
      {
      int a:8;
      int b:2;
      int c:6;
      };


      位域變量的說明與結(jié)構(gòu)變量說明的方式相同。 可采用先定義后說明,同時定義說明或者直接說明這三種方式。例如:


      struct bs
      {
      int a:8;
      int b:2;
      int c:6;
      }data;


      說明 data為 bs變量,共占兩個字節(jié)。其中位域 a占 8位,位域b占2位,位域 c占6位。對于位域的定義尚有以下
      幾點說明:


      1. 一個位域必須存儲在同一個字節(jié)中,不能跨兩個字節(jié)。如一個字節(jié)所?臻g不夠存放另一位域時,應(yīng)從下一單元起
      存放該位域。也可以有意使某位域從下一單元開始。例如:

      struct bs
      {
      unsigned a:4
      unsigned :0 /*空域*/
      unsigned b:4 /*從下一單元開始存放*/
      unsigned c:4
      }

      在這個位域定義中,a占第一字節(jié)的4位,后 4位填 0表示不使用,b從第二字節(jié)開始,占用 4位,c占用 4位。

      2. 由于位域不允許跨兩個字節(jié),因此位域的長度不能大于一個字節(jié)的長度,也就是說不能超過 8位二進位。
      3. 位域可以無位域名,這時它只用來作填充或調(diào)整位置。無名的位域是不能使用的。例如:
      struct k
      {
      int a:1
      int :2 /*該2位不能使用*/
      int b:3
      int c:2
      };


      從以上分析可以看出,位域在本質(zhì)上就是一種結(jié)構(gòu)類型, 不過其成員是按二進位分配的。

      分享到:
      本文糾錯】【告訴好友】【打印此文】【返回頂部
      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
      Copyright © 2006-2017 中華考試網(wǎng)(Examw.com) All Rights Reserved  營業(yè)執(zhí)照