十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
1、在c語言中定義bit型變量,可以使用位域來自定義。
在吳忠等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營銷推廣,外貿(mào)網(wǎng)站制作,吳忠網(wǎng)站建設(shè)費用合理。
位域的定義和位域變量的說明位域定義與結(jié)構(gòu)定義相仿,其形式為:
struct 位域結(jié)構(gòu)名
{ 位域列表 };
其中位域列表的形式為: 類型說明符 位域名:位域長度;
2、示例:通過位域來計算IEEE754浮點數(shù)標準中,單精度浮點數(shù)的最大值、最小值以及最小弱規(guī)范數(shù)。
#include?stdio.h
typedef?struct?FP_SINGLE
{
unsigned?__int32?fraction?:?23;
unsigned?__int32?exp??????:?8;
unsigned?__int32?sign?????:?1;
}?fp_single;
int?main()
{
float?x;
fp_single?*?fp_s?=?(fp_single?*)x;
fp_s-sign?=?0;
fp_s-exp?=?0xfe;
fp_s-fraction?=?0x7fffff;
printf?("float?最大數(shù):??????%le\n",(double)x);
fp_s-sign?=?0;
fp_s-exp?=?0x1;
fp_s-fraction?=?0x0;
printf?("float?最小數(shù):??????%le\n",(double)x);
fp_s-sign?=?0;
fp_s-exp?=?0;
fp_s-fraction?=?0x1;
printf?("float?最小弱規(guī)范數(shù):%le\n\n",(double)x);
return?0;
}
bit Timerout=0; 這里的bit本質(zhì)上和char、int一樣的(功能一樣,類型不一樣),char是8位,int是16位,bit是1位。
每個字節(jié)是8位,就可以包含8個bit,bit只有兩個值,1和0.
bit Timerout=0;
bit keypress;
就是定義兩個長度為1位的變量。
a=a|BIT(b) BIT(b)應(yīng)該是一個有返回值的函數(shù),整個語句代表的是一個數(shù),它與a這個數(shù)進行或運算了之后把運算結(jié)果賦給a
C語言支持位操作,示例如下:
/* 要操作的字節(jié)變量為i */
unsigned char i;
i = i 0x7f; /* 把最高位置0,其余位不變 */
i = i | 0x80; /* 把最高位置1,其余位不變 */
i = i 0xbf; /* 把第二位置0,其余位不變 */
i = i | 0x40; /* 把第二位置1,其余位不變 */
................................