




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章位運(yùn)算
在計(jì)算機(jī)中,數(shù)據(jù)是由二進(jìn)制表示的,一個(gè)字符占用若干二進(jìn)制位。在一些系統(tǒng)軟件中,常要對(duì)某些數(shù)據(jù)的二進(jìn)制位進(jìn)行處理,例如,對(duì)某些二進(jìn)制位清零、將一個(gè)存儲(chǔ)單元中的各二進(jìn)制位左移或右移等。
C語(yǔ)言中對(duì)二進(jìn)制位的運(yùn)算稱(chēng)作位運(yùn)算。位運(yùn)算的對(duì)象只能是整型數(shù)據(jù)和字符型數(shù)據(jù)。
8.1位運(yùn)算與位運(yùn)算符C語(yǔ)言中提供了六種位運(yùn)算符。表8.1位運(yùn)算符的運(yùn)算功能和優(yōu)先級(jí)運(yùn)算符含義優(yōu)先級(jí)~按位求反高低<<>>左移右移&^|按位與按位異或按位或①先將兩個(gè)運(yùn)算數(shù)右端對(duì)齊。②再將位數(shù)不足的一個(gè)運(yùn)算對(duì)象向高位擴(kuò)充,即:無(wú)符號(hào)數(shù)和正整數(shù)左端用0補(bǔ)齊;負(fù)數(shù)左端用1補(bǔ)齊;③然后對(duì)位數(shù)相等的這兩個(gè)數(shù)按位進(jìn)行運(yùn)算。注意:只有按位求反運(yùn)算符(~)為單目運(yùn)算符,其余均為雙目運(yùn)算符。當(dāng)兩個(gè)運(yùn)算對(duì)象的位數(shù)不同時(shí),系統(tǒng)將自動(dòng)進(jìn)行如下處理:8.1.1“按位與”運(yùn)算(&)
“按位與”運(yùn)算是將參加運(yùn)算的兩操作對(duì)象,按對(duì)應(yīng)的二進(jìn)制位分別進(jìn)行“邏輯與”運(yùn)算,運(yùn)算規(guī)則為:只有兩個(gè)相應(yīng)位都為1時(shí),該位的運(yùn)算結(jié)果才為1;兩個(gè)相應(yīng)位的值相異或均為0時(shí),該位的運(yùn)算結(jié)果為0。如下所示:
1&1=10&1=01&0=00&0=0;
【例8.1】求表達(dá)式12&10的值。main(){charx=12,y=10;printf(“%d,%d\n”,x,y);x=x&y;printf(“%d,%d\n”,x,y);}輸出結(jié)果為:運(yùn)算過(guò)程如下:
12:00001100&10:00001010結(jié)果:00001000
按位與運(yùn)算主要包括以下用途:①清零如果想將某個(gè)存儲(chǔ)單元清零,只需將這個(gè)存儲(chǔ)單元的值與零進(jìn)行“與”運(yùn)算,即可達(dá)到清零的目的。【例8.2】分析下面程序結(jié)果main(){charch;ch=46;printf("%d\n",ch);ch=ch&0;printf("%d\n",ch);}輸出結(jié)果為:其運(yùn)算過(guò)程如下:
46:00101110
&0:00000000
結(jié)果:00000000②獲取指定位
要想獲取X的指定位,則用一個(gè)數(shù)與X進(jìn)行“與”運(yùn)算,此數(shù)在與指定位相同的位上的值為1,其余各位為0。
例如:取X的2、3、4、5位上的值,表達(dá)式為:Y=X&60。
X:xxxxxxxx
&60:00111100
結(jié)果:00xxxx00
#include<stdio.h>main(){intx;printf("Pleaseinputanumber:");scanf("%d",&x);if((x&0x01)==0)/*通過(guò)與運(yùn)算,然后判斷結(jié)果最低位其是否為0*/printf("\n%dcanbedividedby2exactly!",x);/*最低位為0, 該數(shù)能被2整除*/elseprintf(“\n%dcan’tbedividedby2exactly!”,x);/*最低位 為1,該數(shù)不能被2整除*/}輸入24,輸出結(jié)果為:【例8.3】從鍵盤(pán)輸入一個(gè)整數(shù),判斷此數(shù)是否能被2整除。
解:一個(gè)整數(shù)能否被2整除,只需判斷最低位是0還是1。若最低位為0,則能被2整除;若為1,則不能被2整除。8.1.2“按位或”運(yùn)算(|)
按位或運(yùn)算是將參加運(yùn)算的兩操作對(duì)象,按對(duì)應(yīng)的二進(jìn)制位分別進(jìn)行“邏輯或”運(yùn)算,運(yùn)算規(guī)則為:只有兩個(gè)相應(yīng)位都為0時(shí),該位的運(yùn)算結(jié)果才為0,其它情況下,結(jié)果全為1。如下所示:
0|0=0
1|1=1
0|1=1
1|0=1
按位“或”經(jīng)常用來(lái)對(duì)一個(gè)數(shù)據(jù)的某些位置1?!纠?.4】求表達(dá)式12|10的值。
main()
{charx=12,y=10;
printf(“%d,%d\n”,x,y);
x=x|y;
printf(“%d,%d\n”,x,y);
}
輸出結(jié)果為:
運(yùn)算過(guò)程12|10=14
12:00001100
|10:00001010
結(jié)果:00001110
【例8.5】把整數(shù)x(8位)的低4位置1,高4位不變。main(){charx=67;printf(“%d\n”,x);x=x|15;printf(“%d\n”,x);}輸出結(jié)果為:
計(jì)算過(guò)程如下:
X:01000011
|15:00001111
結(jié)果:010011118.1.3“按位異或”運(yùn)算(^)
按位異或運(yùn)算是將參加運(yùn)算的兩操作對(duì)象,按對(duì)應(yīng)的二進(jìn)制位分別進(jìn)行“按位異或”運(yùn)算,運(yùn)算規(guī)則為:參加運(yùn)算的兩個(gè)運(yùn)算量,如果兩個(gè)相對(duì)應(yīng)位上的值不同,則該位的結(jié)果為1;如果對(duì)應(yīng)位上的值相同,則該位的結(jié)果為0。如下所示:
1^1=0
0^0=0
1^0=1
0^1=1
例如:求表達(dá)式210^127的值。
運(yùn)算過(guò)程如下:
210:11010010
^127:00111111
結(jié)果:11101101
即:210^127=237
“按位異或”的應(yīng)用主要包括:
①使特定位翻轉(zhuǎn),即使指定的位求反?!纠?.6】設(shè)x=46,將其高4位保留原樣,低4位各位求反。分析只須將x與00001111進(jìn)行異或運(yùn)算即可。main(){charx=46;printf(“%d\n”,x);x=x^15;printf(“%d\n”,x);}輸出結(jié)果為:
運(yùn)算過(guò)程
00101110^00001111
結(jié)果:00100001
“按位異或”的應(yīng)用主要包括:
①使特定位翻轉(zhuǎn),即使指定的位求反。【例8.6】設(shè)x=46,將其高4位保留原樣,低4位各位求反。分析只須將x與00001111進(jìn)行異或運(yùn)算即可。main(){charx=46;printf(“%d\n”,x);x=x^15;printf(“%d\n”,x);}②對(duì)變量置零。每一個(gè)數(shù)與它自身進(jìn)行“異或”運(yùn)算,結(jié)果各位均為零。即:x^x=0。
【例8.7】不用臨時(shí)變量,交換兩個(gè)變量的值。
main()
{charx=12,y=10;
printf(“%d,%d\n”,x,y);
x=x^y;y=y^x;x=x^y;
printf(“%d,%d\n”,x,y);
}
輸出結(jié)果為:
運(yùn)算過(guò)程
x:00001100
^y:00001010x:00000110
^y:00001010y:00001100
^x:00000110x:00001010注意:三條語(yǔ)句的先后順序不能變。8.1.4“按位取反”運(yùn)算(~)
“按位取反”運(yùn)算符“~”是唯一的一個(gè)單目位運(yùn)算符,用來(lái)將一個(gè)二進(jìn)制數(shù)按位取反,即將1變0,將0變1。
運(yùn)算規(guī)則如下:
~1=0
~0=1 【例8.8】給出一個(gè)數(shù)的原碼,求出該數(shù)的補(bǔ)碼。
解:一個(gè)正數(shù)的補(bǔ)碼等于該數(shù)的原碼,一個(gè)負(fù)數(shù)的補(bǔ)碼等于該數(shù)的反碼加1。
main()
{unsignedinta;/*聲明一個(gè)無(wú)符號(hào)的整數(shù)a*/
unsignedintgetbits(unsigned);/*函數(shù)聲明*/
printf(“\nInputanoctalnumber:”);
scanf(“%o”,&a);/*以八進(jìn)制形式輸入一個(gè)無(wú)符號(hào)的整數(shù)*/
printf(“result:%o”,getbits(a));/*以八進(jìn)制形式輸出*/
}
unsignedintgetbits(unsignedvalue)/*求一個(gè)二進(jìn) 制數(shù)的補(bǔ)碼*/
{unsignedintz;
z=value&10000000;
if(z==10000000)z=~value+1;/*對(duì)負(fù)數(shù)求其補(bǔ)碼*/
elsez=value;/*正數(shù)不變*/
return(z);
}
先后輸入2345和1252525的運(yùn)行情況如下:
8.1.5“左移”運(yùn)算(<<)左移運(yùn)算的一般形式為:運(yùn)算對(duì)象<<左移位數(shù)左移運(yùn)算符“<<”是雙目運(yùn)算符,它的作用是:將一個(gè)數(shù)的各二進(jìn)制位依次左移若干位(由左移位數(shù)給出),左移時(shí),右端(低位)補(bǔ)0,左端(高位)移出的部分舍去。
設(shè)a=6,則a<<2的值為24:
a:00000110(a=6)
a<<2:00011000(b=24=4*6)左移時(shí),若左端移出的部分不包含有效二進(jìn)制數(shù)1,則每左移一位,相當(dāng)于移位對(duì)象乘以2。在某些情況下,可以利用左移的這一特征來(lái)代替乘法運(yùn)算,以加快運(yùn)算速度?!纠?.9】輸入兩個(gè)1位十進(jìn)制數(shù)字a和b,由a、b組合生成整數(shù)c(c用字符類(lèi)型表示),并顯示出來(lái)。生成規(guī)則是:a的低4位作為c的高4位,b的低4位作為c的低4位。
解:要想用a、b的低4位組成c,需要做以下工作:
①屏蔽掉a、b高4位;
②a左移4位,使a的低4位成為高4位;
③將a和b拼在一起,形成c。main()
{chara,b,c;
while(1) /*輸入a,b*/
{printf("Pleaseinputaandb:\n");
scanf("%c,%c",&a,&b);
if((a<='9')&&(a>='0')&&(b<='9')&&(b>='0'))break;
}
a=a<<4; /*a左移4位,低4位移至高4位*/
b=b&0x0f; /*屏蔽b的高4位*/
c=a|b;
printf("c=%d\n",c);
}
/*例8.9程序*/8.1.6“右移”運(yùn)算(>>)
右移運(yùn)算的一般形式為:運(yùn)算對(duì)象>>右移位數(shù)
右移運(yùn)算符“>>”是雙目運(yùn)算符,它的作用是:將一個(gè)數(shù)的各二進(jìn)制位依次右移若干位(由右移位數(shù)給出),右移時(shí),右端(低位)移出的部分舍去,左端(高位)移入的二進(jìn)制數(shù)分兩種情況:無(wú)符號(hào)數(shù)和正整數(shù),高位補(bǔ)0;負(fù)整數(shù),高位補(bǔ)1。
例如:
inta=5,b=-3,x,y;
x=a>>2;
y=b>>2;
用二進(jìn)制數(shù)表示的運(yùn)算過(guò)程如下:
a的二進(jìn)制補(bǔ)碼表示:00000101
x=a>>2:00000001
b的二進(jìn)制補(bǔ)碼表示:11111101
y=b>>2:111111118.1.7位復(fù)合賦值運(yùn)算符
類(lèi)似于算術(shù)運(yùn)算的復(fù)合賦值運(yùn)算符,位運(yùn)算符和賦值運(yùn)算符也可以構(gòu)成位復(fù)合賦值運(yùn)算符。
表10.2由位運(yùn)算符構(gòu)成的復(fù)合運(yùn)算符
復(fù)合運(yùn)算符名稱(chēng)表達(dá)式等價(jià)的表達(dá)式&=按位與賦值a&=ba=a&b|=按位或賦值a|=ba=a|b^=按位異或賦值a^=ba=a^b>>=右移位賦值a>>=ba=a>>b<<=左移位賦值a<<=ba=a<<b注意:位運(yùn)算的類(lèi)型可以是整型(int、unsigned或longint)或字符型(char)數(shù)據(jù)。當(dāng)兩個(gè)運(yùn)算對(duì)象的類(lèi)型不同時(shí)系統(tǒng)會(huì)自動(dòng)進(jìn)行如下處理:⑴兩個(gè)運(yùn)算對(duì)象按位右對(duì)齊;⑵較短的運(yùn)算對(duì)象高位符號(hào)擴(kuò)展;即如果是正數(shù),高位補(bǔ)0,如果是負(fù)數(shù),高位補(bǔ)1。
8.2位段及使用
計(jì)算機(jī)中一般以字節(jié)為單位存放數(shù)據(jù),但實(shí)際工作中有時(shí)數(shù)據(jù)的表示不必用一個(gè)字節(jié),僅僅占用一個(gè)字節(jié)的一位或幾位即可。例如,某系統(tǒng)有7種設(shè)備a,b,c,d,e,f,g,設(shè)備a有4種狀態(tài),設(shè)備b有3種狀態(tài),設(shè)備c有8種狀態(tài),設(shè)備d有8種狀態(tài),設(shè)備e有1種狀態(tài),設(shè)備f有4種狀態(tài),設(shè)備g有6種狀態(tài)。如果每一種設(shè)備的狀態(tài)用一個(gè)字節(jié)表示,共需要7個(gè)字節(jié)。實(shí)際上設(shè)備a有4種狀態(tài),用2位表示即可,即使對(duì)于有8種狀態(tài)的設(shè)備c和d,用3位二進(jìn)制表示也就夠了。7種設(shè)備總共用16位二進(jìn)制數(shù),用一個(gè)無(wú)符號(hào)整型變量flag來(lái)表示即可。
利用位運(yùn)算可以處理這些標(biāo)志信息比較麻煩。
例如對(duì)于上述系統(tǒng)b設(shè)備3種狀態(tài)用flag的第12、13位表示,如果b的狀態(tài)為01,
●利用位運(yùn)算來(lái)設(shè)置變量flag的方法可以為:
將01存入一個(gè)臨時(shí)變量temp;
將temp左移12位,將01移至到第12、13位;
將flag和temp進(jìn)行“按位或”運(yùn)算。
●使用flag中設(shè)備b的狀態(tài)信息,可能需要進(jìn)行以下操作:
將flag內(nèi)容送至臨時(shí)變量temp;
將temp與0x3000進(jìn)行“按位與”運(yùn)算,屏蔽掉除12、 13位的其它位;
temp右移12位。
8.2.1位段結(jié)構(gòu)類(lèi)型
C語(yǔ)言提供了位段操作,可以方便地實(shí)現(xiàn)對(duì)一個(gè)變量的某些位進(jìn)行處理。所謂位段,是以位為單位定義長(zhǎng)度的一種結(jié)構(gòu)類(lèi)型的成員。
位段結(jié)構(gòu)是一種構(gòu)造類(lèi)型,類(lèi)型定義的方法為:
struct類(lèi)型名
{基類(lèi)型位段名1:位段1占用位數(shù);
基類(lèi)型位段名2:位段2占用位數(shù);
…;
基類(lèi)型位段名n:位段n占用位數(shù);
};
例:上面所述系統(tǒng)的位段結(jié)構(gòu)類(lèi)型可以定義為:
structstatus
{unsigneda:2;
unsignedb:2;
unsignedc:3;
unsignedd:3;
unsignede:1;
unsignedf:2;
unsignedg:3;
};
位段結(jié)構(gòu)類(lèi)型名為status,它包含7個(gè)位段(bitfield),每個(gè)位段的數(shù)據(jù)類(lèi)型都是unsigned,每個(gè)位段所占的二進(jìn)制位數(shù)由冒號(hào)后面的數(shù)字指定。8.2.2位段結(jié)構(gòu)類(lèi)型變量的定義與引用
1.位段結(jié)構(gòu)類(lèi)型的變量
定義了位段結(jié)構(gòu)類(lèi)型后,就可以定義相應(yīng)的位段結(jié)構(gòu)類(lèi)型的變量了。位段結(jié)構(gòu)類(lèi)型的變量的定義方法和其它變量定義方法一樣。
例如利用上面定義的類(lèi)型status可以定義變量flag。
structstatusflag;
位段的存放位置由編譯系統(tǒng)分配,不同的編譯系統(tǒng)分配方式不同,有的系統(tǒng)從左到右分配,有的系統(tǒng)則從右到左。程序設(shè)計(jì)人員不必考慮具體的分配方式,可以直接利用位段名對(duì)位段進(jìn)行操作。2.位段數(shù)據(jù)的引用
●位段數(shù)據(jù)的引用方法和結(jié)構(gòu)體成員的引用方式相同,例如可以為flag的成員a賦值:
flag.a=2;\*a的值為10*\
flag.b=1;\*b的值為01*\
●如果所賦值超過(guò)了位段所允許的最大范圍,系統(tǒng)會(huì)自動(dòng)取數(shù)的低位。例如:
flag.a=5;
由于5的二進(jìn)制形式為101,位段a只有2位,所以結(jié)果a的值為01。3.關(guān)于位段的說(shuō)明
位段的定義和引用,需要注意以下幾點(diǎn):
①位段的基類(lèi)型必須為unsigedint類(lèi)型。
②可以將類(lèi)型說(shuō)明和變量說(shuō)明一起完成。例如:
structpacked1
{unsignedf1:4;
unsignedf2:2;
unsignedf3:2;
}data1;③在位段結(jié)構(gòu)中可以定義無(wú)名位段。無(wú)名位段起位段之間的分隔作用。例如:
structpacked2
{unsignedf1:4;
unsignedf2:2;
unsigned:2; /*無(wú)名位段,起分隔作用*/
unsignedf3:2;
}data2;
該位段結(jié)構(gòu)中的第3個(gè)位段為無(wú)名位段,它占用2位二進(jìn)制位,它的作用是將f2和f3兩個(gè)位段分割開(kāi)。1512111098760f1f2空f(shuō)3圖8.1④無(wú)名位段的長(zhǎng)度可以為0,使下一個(gè)位段從下一個(gè)單元存放。例如:
structpacked3
{unsignedf1:4;
unsignedf2:4;
unsigned:0; /*無(wú)名位段長(zhǎng)度為0*/
unsignedf3:2;
}data3;
如果沒(méi)有長(zhǎng)度為0的無(wú)名位段,位段f3應(yīng)該和位段f2相鄰存放,由于長(zhǎng)度為0的無(wú)名位段的存在,位段f3被分配到下一個(gè)單元。
151211109876015140f1f2f3⑤一個(gè)位段必須存儲(chǔ)在同一存儲(chǔ)單元,不能橫跨兩個(gè)存儲(chǔ)單元。如果一個(gè)單元空間不夠,則系統(tǒng)從下一個(gè)單元起存放該位段。
structpacked4
{unsignedf1:8;
unsignedf2:4;
unsignedf3:6;/*該位段從下一個(gè)單元起存放*/
unsignedf4:2;
}data4;
由于f1和f2占用了12位,f3需要6位,第一個(gè)單元剩余的4位放不下,于是f3從第二個(gè)單元開(kāi)始存放。
f1158743015109870f4f3f2
因?yàn)橐粋€(gè)位段不能橫跨兩個(gè)單元,所以一個(gè)位段的長(zhǎng)度不能超過(guò)一個(gè)字長(zhǎng)。
位段不能說(shuō)明為數(shù)組,也不能用指針指向位段。⑥在位段結(jié)構(gòu)中,不一定必須是位段成員,也可以包含非位段成員。例如:
structpacked5
{unsignedf1:4;
unsignedf2:4;
unsignedf3:4;
intn; /*非位段成員*/
}data5;
其中intn定義了一個(gè)整型變量,而不是一個(gè)位段。
150150nf2f1f3⑦位段可以在數(shù)值表達(dá)式中引用,并被系統(tǒng)自動(dòng)轉(zhuǎn)換成整型數(shù)。例如:
data5.f1+5;
data4.f2+15/data5.f1;
都是合法的表達(dá)式。請(qǐng)讀者自己分析這兩個(gè)表達(dá)式的值。
位段既然可以在表達(dá)式中引用,位段也就可以以整型格式輸出。
例如:
printf(“%d,%d”,data2.f1,data1.f2);
當(dāng)然也可以用%u,%o,%x等格式輸出。8.2.3應(yīng)用舉例
【例8.10】取一個(gè)整數(shù)a(用16位存儲(chǔ))從右端開(kāi)始的4~7位。
解:例如,0000,0000,1101,1001(八進(jìn)制331,十 進(jìn)制217;4~7位1101的八進(jìn)制值是15,十進(jìn) 制13)。
方法:
①先使a右移4位,使要取出的幾位移到最右端。a>>4
②設(shè)置一個(gè)低4位全為1,其余為0的數(shù)~(~0<<4)
③將上面兩者進(jìn)行&運(yùn)算。
main()
{unsigneda,b,c,d;
scanf(“%o”,&a);/*以八進(jìn)制形式輸入一個(gè)無(wú)符號(hào)的整數(shù)*/
b=a>>4;/*將a右移4位后賦值給變量b*/
c=~(~0<<4);/*使低4位全為1,其余為0*/
d=b&c;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 正面管教課題申報(bào)書(shū)
- 內(nèi)蒙古教學(xué)課題申報(bào)書(shū)
- 自籌課題申報(bào)書(shū)范文格式
- 十三五課題申報(bào)書(shū)歷史
- 數(shù)字法學(xué)課題申報(bào)指南書(shū)
- 課題申報(bào)書(shū)代寫(xiě)
- 業(yè)務(wù)交易合同范本
- oem合同范本簡(jiǎn)版
- 教育教研課題申報(bào)書(shū)
- 供貨企業(yè)供貨合同范本
- 人教版(PEP)五年級(jí)英語(yǔ)下冊(cè)第一單元測(cè)試卷-Unit 1 My day 含答案
- 企業(yè)名稱(chēng)預(yù)先核準(zhǔn)通知書(shū)
- 統(tǒng)籌管理方案
- 建筑工程安全文明施工標(biāo)準(zhǔn)化圖集(附圖豐富)
- 人教版 美術(shù)二年級(jí)上冊(cè) 第9課 蜻蜓飛飛 教案
- Unit 1 Travel教案-2023-2024學(xué)年高一下學(xué)期 中職英語(yǔ)高教版(2023修訂版)基礎(chǔ)模塊2
- DB3206T 1083-2024機(jī)關(guān)會(huì)議服務(wù)人員操作技術(shù)規(guī)范
- 1.3.1-二項(xiàng)式定理-公開(kāi)課一等獎(jiǎng)?wù)n件
- 垃圾清運(yùn)突發(fā)事件應(yīng)急預(yù)案
- 中醫(yī)淋巴排毒
- 提高鉆孔灌注樁成孔質(zhì)量一次驗(yàn)收合格率
評(píng)論
0/150
提交評(píng)論