零基礎(chǔ)入門語言篇十一章位運(yùn)算_第1頁
零基礎(chǔ)入門語言篇十一章位運(yùn)算_第2頁
零基礎(chǔ)入門語言篇十一章位運(yùn)算_第3頁
零基礎(chǔ)入門語言篇十一章位運(yùn)算_第4頁
零基礎(chǔ)入門語言篇十一章位運(yùn)算_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第十一位運(yùn)算C語言既具有高級語言的特點(diǎn),也具有低級語言的特點(diǎn)。本節(jié)所講的位運(yùn)算就具有低級語言的特點(diǎn),并被廣泛用于對底層硬件、外圍設(shè)備的狀態(tài)檢測和控制。計(jì)算機(jī)真正執(zhí)行的是由0和1信號組成的計(jì)算機(jī)指令,數(shù)據(jù)也是以二進(jìn)制形式表示的。因此最終要實(shí)現(xiàn)計(jì)算機(jī)的操作,就要對這些0和1進(jìn)行操作。每一個(gè)0和1的狀態(tài)稱為一個(gè)“位”(bit)的狀態(tài)。有了位運(yùn)算,C語言就能編寫出直接對計(jì)算機(jī)硬件進(jìn)行操作的程序。本章主要內(nèi)容11.1位運(yùn)算及位運(yùn)算符概述11.2位運(yùn)算11.3位域11.4位運(yùn)算應(yīng)用舉例11.1位運(yùn)算及位運(yùn)算符概述11.1.1位運(yùn)算概述所謂位運(yùn)算是指對操作數(shù)以二進(jìn)制位(bit)為單位進(jìn)行的數(shù)據(jù)處理。每一個(gè)二進(jìn)制位只能存放1位二進(jìn)制數(shù)“0”或“1”,因此位運(yùn)算符的運(yùn)算對象是一個(gè)二進(jìn)制數(shù)位的集合。通常把組成一個(gè)數(shù)據(jù)的最右邊的二進(jìn)制位稱作第0位,從右向左依次稱為第1位,第2位,…,最左邊一位稱作最高位。11.1.2位運(yùn)算符位的種類C語言中,位運(yùn)算包括邏輯位運(yùn)算和移位位運(yùn)算。1、邏輯位運(yùn)算分為四種:位反、位與、位或、位異2、移位位運(yùn)算分為二種:左移與右移。在c語言中的移位不是循環(huán)移動,經(jīng)過移位后一端的位被“擠掉”,而另一端空出的位補(bǔ)0。3、位復(fù)合賦值運(yùn)算符類似于算術(shù)的復(fù)合運(yùn)算符,位運(yùn)算符和賦值運(yùn)算符也可以構(gòu)成復(fù)合賦值運(yùn)算符。4、關(guān)于位運(yùn)算符的幾點(diǎn)說明(1)在邏輯位運(yùn)算中,~的優(yōu)先級高于算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符,其他位運(yùn)算符則低于關(guān)系運(yùn)算符、高于邏輯運(yùn)算符。(2)參加位運(yùn)算的操作數(shù)必須是整型或字符型數(shù)據(jù)(常量或變量),不能是其它類型的數(shù)據(jù)。(3)兩個(gè)長度不同的數(shù)據(jù)進(jìn)行位運(yùn)算時(shí),系統(tǒng)先將兩者的右端對齊,短的運(yùn)算對象若是有符號數(shù)則按符號位擴(kuò)展,若是無符號數(shù)則以“0”擴(kuò)充。(4)位運(yùn)算符的優(yōu)先級如下:按位取反運(yùn)算符“~”的優(yōu)先級最高,高于所有的雙目運(yùn)算符;其次是左移運(yùn)算符“<<“和右移運(yùn)算符“>>”,其優(yōu)先級高于關(guān)系運(yùn)算符;最低的是按位與“&”、按位異或“∧”和按位或“|”運(yùn)算符,其優(yōu)先級低于關(guān)系運(yùn)算符。(5)除了按位取反運(yùn)算符“~”的結(jié)合方向是自右至左外,其余位運(yùn)算符的結(jié)合方向都是自左至右(6)位運(yùn)算符和邏輯運(yùn)算符很相似,要注意區(qū)別。關(guān)系運(yùn)算和邏輯運(yùn)算的結(jié)果只能是1或0,而按位運(yùn)算的結(jié)果不一定是1或0,還可以是其它數(shù)。11.2位運(yùn)算任務(wù)提出:如何統(tǒng)計(jì)一個(gè)字符對應(yīng)的ASCII碼中1的個(gè)數(shù)?任務(wù)分析:此問題首先要從鍵盤輸入一個(gè)字符,然后統(tǒng)計(jì)出該字符對應(yīng)的ASCLL碼值轉(zhuǎn)換成二進(jìn)制后1的個(gè)數(shù)。 解決此問題的難點(diǎn)在于如何判斷該字符對應(yīng)ASCII碼值轉(zhuǎn)換成二進(jìn)制后每個(gè)位上的數(shù)字是0還是1。設(shè)從鍵盤輸入的字符用ch表示,該問題需對字符ch的ASCII碼的每一位進(jìn)行測試,判斷是0還是1。方法是:設(shè)置一個(gè)屏蔽字與ch進(jìn)行“&”運(yùn)算,從而取所需的某位的狀態(tài)(0或1)。從高位開始,第8位所需設(shè)置的屏蔽字mask為0x80,即二進(jìn)制10000000,若ch&mask的結(jié)果為0,則說明ch的第8位為0,否則為1。第7位所需設(shè)置的屏蔽字mask為0x40,即將mask右移一位。如此一直下去,直到結(jié)束。#include"stdio.h"main(){charch;intmask,i,count=0;printf("請輸入一個(gè)字符:");ch=getchar();printf("該字符的ASCII是%d\n",ch);mask=0x80;for(i=0;i<8;i++){if((ch&mask)!=0)count++;mask>>=1;}printf("ASCII中1的個(gè)數(shù)有:%d\n",count);getch();}11.21按位取反運(yùn)算按位取反運(yùn)算是用來對二進(jìn)制按位進(jìn)行取反運(yùn)算,是單目運(yùn)算符。按位取反運(yùn)算符用“~”表示。按位取反運(yùn)算符是位運(yùn)算中惟一的單目運(yùn)算符,運(yùn)算對象應(yīng)置于運(yùn)算符的右邊。1、按位取反運(yùn)算的運(yùn)算規(guī)則按位取反運(yùn)算的運(yùn)算規(guī)則:把運(yùn)算對象的內(nèi)容按位取反,將每一位上的0變1,1變0。即~0=1,~1=0。例如:對十六進(jìn)制數(shù)32進(jìn)行取反?!?0110010=11001101結(jié)果為11001101。又如:a=0000000000001011,則表達(dá)式~a的值為1111111111110100。unsignedchara,b; /*定義兩個(gè)無符號字符型變量a,b*…b=~a /*對變量a全部位取反,結(jié)果賦值給b*/…printf("~a=%d\n",b); /*輸出十進(jìn)制b值*/2、按位取反運(yùn)算的主要應(yīng)用按位取反運(yùn)算的主要應(yīng)用:用來適應(yīng)不同字長型號的機(jī)型,幫助得到使原數(shù)最低位為0。例如:想使a中最低位為0,可讓a=a&~1。如果a是16位,其中~1等于0177776,與a相與后,使最低位為0。如果是a是32位,其中~1等于0377776,與a相與后,使最低位為0??傊?,不管什么樣的機(jī)型,只要用a=a&~1,就可以使原數(shù)的最低位為0,而其余位不變。11.2.2按位與運(yùn)算按位與運(yùn)算是指參與運(yùn)算的兩個(gè)數(shù)對應(yīng)的二進(jìn)制位進(jìn)行邏輯與的操作,用“&”表示。1、按位與運(yùn)算符的規(guī)則按位與運(yùn)算符的規(guī)則:若兩個(gè)運(yùn)算對象的對應(yīng)二進(jìn)制數(shù)位均為1,則結(jié)果的對應(yīng)數(shù)位為1,否則為0。按位與運(yùn)算可能的運(yùn)算組合及其運(yùn)算結(jié)果如下所示:0&0=01&0=00&1=01&1=1即當(dāng)兩個(gè)數(shù)對應(yīng)的位全為1時(shí),得到的該位就為1,只要對應(yīng)的位有一個(gè)0,得到的該位就為0。按位與運(yùn)算的特點(diǎn):二進(jìn)制數(shù)的任何數(shù)位,只要和數(shù)位0進(jìn)行“與”運(yùn)算,該位清零;和數(shù)位1進(jìn)行“與”運(yùn)算,該位保留原值不變。例如,x=0000000000001011,y=0000000000001010,則表達(dá)式x&y的計(jì)算結(jié)果如下:2.按位與運(yùn)算的主要應(yīng)用(1)按位清零:只要把需要進(jìn)行清零的位與0進(jìn)行“按位與”操作,其余與1進(jìn)行“按位與”操作即可。例:把整型變量a的高八位清0,保留低八位。方法是:把a(bǔ)和一個(gè)高八位為0,低八位為1的數(shù)進(jìn)行按位與運(yùn)算。程序清單如下:main(){inta=268,b=0x00ff,c;c=a&b;printf("a=%d,b=%d,c=%d\n",a,b,c);}運(yùn)行結(jié)果:a=264,b=255,c=13(2)測試指定位的值:要判斷某一指定位的值是否為1或0,只需將這一位與1進(jìn)行“按位與”操作,然后判斷結(jié)果是否為1或0即可。例:設(shè)x是一個(gè)字符型變量(8位二進(jìn)制位),判斷x的最低位是否為1。方法是:把x和0x01進(jìn)行“按位與”運(yùn)算,如果結(jié)果為1則x的最低位是1。x=********&00000001結(jié)果:0000000*。程序清單如下:main(){intx=268,y=0x001,z;z=x&y;printf("x=%d,y=%d,z=%d\n",x,y,z);}運(yùn)行結(jié)果:x=268,y=1,z=0應(yīng)當(dāng)注意:“按位與”運(yùn)算&的優(yōu)先級低于關(guān)系運(yùn)算符!、=和==,所以在判斷結(jié)果是否為零時(shí),表達(dá)式(x&0x01)!=0中的圓括號不能省略。(3)獲取指定位的值:要想獲取某些位的判斷某些位的值,只需將這些位的與1進(jìn)行“按位與”操作,其余與0進(jìn)行“按位與”操作。比如,設(shè)a=00101101,想取出a中的2~5位,方法是:令a&00011110。結(jié)果為:00001100。例:設(shè)x是一個(gè)整型變量(16位二進(jìn)制位),獲取x的低8位。方法是:將x與數(shù)0x00ff進(jìn)行按位與運(yùn)算:設(shè)x=****************&0000000011111111結(jié)果:00000000********。最后的結(jié)果是保存了x的低八位。程序清單如下:main(){intx=268,y=0x00ff,z;z=x&y;printf("x=%d,y=%d,z=%d\n",x,y,z);}運(yùn)行結(jié)果:x=268,y=255,z=1211.2.3按位或運(yùn)算按位或運(yùn)算符是指參與運(yùn)算的兩個(gè)數(shù)對應(yīng)的二進(jìn)制位進(jìn)行邏輯或的操作,用“|”表示。1、按位或運(yùn)算符的運(yùn)算規(guī)則按位或運(yùn)算符的運(yùn)算規(guī)則:當(dāng)兩個(gè)數(shù)對應(yīng)的位全為0時(shí),得到的該位就為0,只要對應(yīng)的位有一個(gè)1,得到的該位就為1。按位或運(yùn)算可能的運(yùn)算組合及其運(yùn)算結(jié)果如下所示:0|0=01|0=10|1=11|1=1例如,x=0000000000001011,y=0000000000001010,則表達(dá)式x|y的計(jì)算結(jié)果如下:結(jié)果為十進(jìn)制11。2.按位或運(yùn)算的主要應(yīng)用按位或運(yùn)算的主要應(yīng)用:按位置1。只要把需要置1的位與1進(jìn)行“按位或”的操作,其余與此0進(jìn)行“按位或”的操作。例:設(shè)x是一個(gè)整型變量,要求將x的低八位置1。方法是x=****************|0000000011111111結(jié)果:********11111111最后的結(jié)果是將x的低八位置1。程序清單如下:main(){intx=268,y=0x00ff,z;z=x|y;printf("x=%d,y=%d,z=%d\n",x,y,z);}11.2.4按位異或運(yùn)算按位異或運(yùn)算符是指參與運(yùn)算的兩個(gè)數(shù)對應(yīng)的二進(jìn)制位進(jìn)行邏輯按位異或的操作,用“∧”表示。1、按位異或運(yùn)算符的運(yùn)算規(guī)則按位異或運(yùn)算符的運(yùn)算規(guī)則:若兩個(gè)運(yùn)算對象的對應(yīng)二進(jìn)制位不同,則結(jié)果的對應(yīng)數(shù)位為1,否則為0。按位異或運(yùn)算可能的運(yùn)算組合及其運(yùn)算結(jié)果如下所示:0∧0=01∧0=10∧1=11∧1=0例如,x=0000000000001011,y=0000000000001010,則表達(dá)式x∧y的計(jì)算結(jié)果如下:又如:c=10^610:0000,0000,0000,1010&6:0000,0000,0000,0110c:0000,0000,0000,1100(12)2.按位異或運(yùn)算的主要應(yīng)用按位異或運(yùn)算的主要應(yīng)用:特定位翻轉(zhuǎn)和保留原值。(1)特定位翻轉(zhuǎn)方法:特定位與1異或。對某些位進(jìn)行操作,如該位為1則將它變?yōu)?,如該位為0則將它變?yōu)?。例如:設(shè)a是一個(gè)字符型變量,現(xiàn)要求將a的低4位翻轉(zhuǎn)。a=01100110^00001111結(jié)果:01101001最后的結(jié)果是將a的低4位翻轉(zhuǎn)。(2)保留原值方法:與0異或。例如:設(shè)a是一個(gè)字符型變量,現(xiàn)要求將a的低4位保留原值。a=01100110^00000000結(jié)果:01100110最后的結(jié)果是將a的低4位保留原值。(3)不用臨時(shí)變量,實(shí)現(xiàn)交換兩個(gè)變量的值。例:將一個(gè)整數(shù)的低4位,如果是1變?yōu)?,如果是變?yōu)?。#include"stdio.h"main(){inta,b=0xf,c;printf("請輸入一個(gè)十六進(jìn)制數(shù)a:\n");scanf("%x",&a);c=a^b;/*將a和b進(jìn)行按位異或運(yùn)算,其結(jié)果存入c*/printf("翻轉(zhuǎn)后的數(shù)為:%x\n",c);getch();}11.2.5左移運(yùn)算左移運(yùn)算符是把“<<”符號左邊的運(yùn)算數(shù)的各二進(jìn)制位全部左移若干位,移動的若干位由“<<”符號右邊的數(shù)指定,高位丟棄,低位補(bǔ)0,用“<<”表示。1、左移運(yùn)算符的運(yùn)算規(guī)則左移運(yùn)算符的運(yùn)算規(guī)則:將運(yùn)算對象中的每個(gè)二進(jìn)制數(shù)位向左移動若干位,從左邊移出去的高位部分被丟棄,右邊空出的低位部分用“0”補(bǔ)齊。例如:x=0000000000001011,則x<<2的結(jié)果為0000000000101100。又例如:左移運(yùn)算舉例:chara=30*2^3;a=a<<2;結(jié)果如下:(30)=(0001,1110)(二進(jìn)制)120)=(0111,1000)(二進(jìn)制)注意:

若移出的高位部分不包含數(shù)位1,則每左移1位,相當(dāng)于乖2,左移n位相當(dāng)于乖2的n次方。若對c=44(00101100)進(jìn)行下面的操作:

c=c<<1;c的值變?yōu)?8(01011000)

c=c<<1;c的值變?yōu)?76(10110000)11.2.6右移運(yùn)算右移運(yùn)算符把運(yùn)算符左邊的運(yùn)算數(shù)的各二進(jìn)制位全部右移若干位,用“>>”表示,移動的若干位由“>>”符號右邊的數(shù)指定。右移運(yùn)算符的運(yùn)算規(guī)則:將運(yùn)算對象中的每個(gè)二進(jìn)制數(shù)位向右移動若干位,從右邊移出去的低位部分被丟棄,左邊空出的高位部分的處理分兩種情況。對無符號數(shù)和正數(shù)來講,左邊空出的高位部分補(bǔ)“0”;對負(fù)數(shù)來講,左邊空出的高位部分補(bǔ)“0”還是補(bǔ)“1”,與所使用的編譯程序有關(guān),有的編譯程序補(bǔ)“0”,稱為邏輯右移,有的編譯程序補(bǔ)“1”,稱為算術(shù)右移。例如:chara=0x78;a=a>>2;120/2^3結(jié)果如下:16進(jìn)制78=120=(0111,1000)(二進(jìn)制)右移后為:(30(0001,1110)(二進(jìn)制)應(yīng)當(dāng)注意:(1)若移出的位全為0,則每右移1位,相當(dāng)于除2,右移n位相當(dāng)于除2的n次方。(2)當(dāng)進(jìn)行右移運(yùn)算時(shí),操作結(jié)果與操作數(shù)是否帶符號有關(guān)。v 無符號操作數(shù)右移時(shí),左端出現(xiàn)的空位補(bǔ)0,右端移出的數(shù)據(jù)舍去。v 帶符號操作數(shù)右移時(shí),左端出現(xiàn)的空位補(bǔ)符號位。若符號位為0則左邊也是移入0,若符號位為1則左端也是移入1,移出的數(shù)據(jù)舍去。例如:帶符號數(shù)a=

16和無符號數(shù)b=240,進(jìn)行下列操作:a=a>>1;a的值變?yōu)?/p>

8(11111000)b=b>>1;b的值變?yōu)?20(01111000)a=a>>1;a的值變?yōu)?/p>

4(11111100)b=b>>1;b的值變?yōu)?0(00111100)11.3位域在程序設(shè)計(jì)中,有時(shí)存儲一個(gè)信息不必用一個(gè)或多個(gè)字節(jié),可以在一個(gè)字節(jié)中存放一個(gè)或多個(gè)信息。例如,“真”或“假”用1或0表示,只需一位即可,如果用一個(gè)變量來存儲,則將浪費(fèi)存儲空間。為了解決該問題,C語言提供了位段操作。在前面介紹的位與運(yùn)算、位或運(yùn)算、位異或運(yùn)算、反運(yùn)算、左移運(yùn)算、右移運(yùn)算等幾種的綜合運(yùn)算,可以實(shí)現(xiàn)對某一位或某幾位的存取,但較麻煩。c語言中允許在結(jié)構(gòu)體中以位為單位來指定其成員所占的內(nèi)存長度,這種以位為單位的成員就稱為位段或位域(bitfield)。所謂位段是由一個(gè)或多個(gè)二進(jìn)制數(shù)位組成的,它是數(shù)據(jù)的一種壓縮形式。位段是一種特殊的壓縮形式結(jié)構(gòu)體結(jié)構(gòu)中的成員,它的特殊性在于它是以位為單位定義長度的。11.3.1位域或位段(bitfield)的定義形式c語言中允許在結(jié)構(gòu)體中以位為單位來指定其成員所占的內(nèi)存長度,這種以位為單位的成員就稱為位段或位域(bitfield)。所謂位段是由一個(gè)或多個(gè)二進(jìn)制數(shù)位組成的,它是數(shù)據(jù)的一種壓縮形式。位段是一種特殊的壓縮形式結(jié)構(gòu)體結(jié)構(gòu)中的成員,它的特殊性在于它是以位為單位定義長度的。11.3.1位域或位段(bitfield)的定義形式位域或位段(bitfield)的定義形式如下:struct位域結(jié)構(gòu)體名{位域列表}其中,位域列表的形式為:類型說明符位域名:位域長度;其中,位域名的類型必須指定為unsignedint型或int型,一般為unsigned型。位域長度以二進(jìn)制位為單位。例如:structbs{unsignedinta:1;unsignedintb:3;unsignedintc:4;}bit,*pbit;定義了結(jié)構(gòu)體bs,該結(jié)構(gòu)體變量共有3個(gè)成員,其中a,b,c成員是位段,分別占1位、3位、4位,共占1個(gè)字節(jié)。又如:structwd{unsigneda:2;unsignedb:3;unsignedc:6;

unsignedd:4;intk;}dat;定義了結(jié)構(gòu)體wd,該結(jié)構(gòu)體變量共有5個(gè)成員,其中a、b、c、d成員是位段,分別占2位、3位、6位、4位,k是的一般成員,k占2個(gè)字節(jié)。11.3.2位域的引用位域的引用方法與引用結(jié)構(gòu)體變量中的成員相同,即:位域結(jié)構(gòu)體名.位域名在C語言中,可以通過賦值語句給位域賦值。例如:structbs{unsineda:6;intb:2;intc:8;}data;這里定義一個(gè)位域結(jié)構(gòu)bs,同時(shí)定義了data為bs變量,共占兩個(gè)字節(jié)。其中位域a占6位,b占2位,c占8位。位域中數(shù)據(jù)的引用為:data.a=7;data.b=1;data.c=9;注意:1、賦值時(shí)不能超過位域允許的最大值范圍,如data.b只占2個(gè)位,最大值為3,此時(shí)若把8(二進(jìn)制為1000)賦給它,就會自動取賦予該數(shù)的低位,也是就00,最終data.b的值為0。2、位域還可以用整型格式符輸出。例如:printf(“%d,%d,%d\n”,data.a,data.b,data.c);也可以用%u、%o、%x等格式符輸出。11.4位運(yùn)算應(yīng)用舉例例:從鍵盤上輸入一個(gè)正整數(shù)n,判斷此數(shù)是奇數(shù)還是偶數(shù)。分析:奇數(shù)的二進(jìn)制表示中右邊的第1位為1,偶數(shù)的二進(jìn)制表示中右邊的第1位為0。因此該題就轉(zhuǎn)換為取該數(shù)右邊的第1位,并判斷其值是否為0。程序清單如下:main(){intn;printf("請輸入一個(gè)大于0的數(shù)n:");scanf("%d",&n);if((n&0x01)==0)/*取n的最后一位,若其值為0,則為偶數(shù),否則為奇數(shù)*/printf("%d是一個(gè)偶數(shù)。\n",n);elseprintf("%d是一個(gè)奇數(shù)。\n",n);getch();}例:將十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)。分析:人們有時(shí)希望知道某個(gè)十六進(jìn)制數(shù)的二進(jìn)制數(shù)是什么,但C語言的printf()函數(shù)只提供%x,%d,%o方式輸出一個(gè)整數(shù)(即十六進(jìn)制,十進(jìn)制,八進(jìn)制)而不能直接輸出一個(gè)整數(shù)的二進(jìn)制形式,需要人工轉(zhuǎn)換,很不方便。在這里可以用位運(yùn)算來實(shí)現(xiàn)此功能。采用的方法是:對一個(gè)整數(shù)num(16位)的每一位進(jìn)行測試,視其為0還是為1,可以設(shè)置一個(gè)屏蔽字與該數(shù)進(jìn)行&運(yùn)算,從而保留(取出)所需的一個(gè)位的狀態(tài)。從高低(第15位)開始,此

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論