日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

c语言运算程序,C语言运算符

發(fā)布時(shí)間:2025/5/22 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言运算程序,C语言运算符 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

通常我們可把位操作AND作為關(guān)閉位的手段,這就是說(shuō)兩個(gè)操作數(shù)中任一為0的位,其結(jié)果中對(duì)應(yīng)位置為0。例如,下面的函數(shù)通過(guò)調(diào)用函數(shù)read_modem(),從調(diào)制解調(diào)器端口讀入一個(gè)字符,并將奇偶校驗(yàn)位置成0。

字節(jié)的位8是奇偶位,將該字節(jié)與一個(gè)位1到位7為1、位8為0的字節(jié)進(jìn)行與操作,可將該字節(jié)的奇偶校驗(yàn)位置成0。表達(dá)式ch&127正是將ch中每一位同127數(shù)字的對(duì)應(yīng)位進(jìn)行與操作,結(jié)果ch的位8被置成了0。在下面的例子中,假定ch接收到字符"A"并且奇偶位已經(jīng)被置位。

一般來(lái)說(shuō),位的AND、OR和XOR操作通過(guò)對(duì)操作數(shù)運(yùn)算,直接對(duì)結(jié)果變量的每一位分別處理。正是因?yàn)檫@一原因(還有其它一些原因),位操作通常不像關(guān)系和邏輯運(yùn)算符那樣用在條件語(yǔ)句中,我們可以用例子說(shuō)明這一點(diǎn):假定X=7,那么x&&8為T(mén)ure(1),而x&8卻為Flase(0)。

記住,關(guān)系和邏輯操作符結(jié)果不是0就是1。而相似的位操作通過(guò)相應(yīng)處理,結(jié)果可為任意值。換言之,位操作可以有0或1以外的其它值,而邏輯運(yùn)算符的計(jì)算結(jié)果總是0或1。移位操作符>>和<

variable>>右移位數(shù)

左移語(yǔ)句是:

variable<

當(dāng)某位從一端移出時(shí),另一端移入0(某些計(jì)算機(jī)是送1,詳細(xì)內(nèi)容請(qǐng)查閱相應(yīng)C編譯程序用戶(hù)手冊(cè))。切記:移位不同于循環(huán),從一端移出的位并不送回到另一端去,移去的位永遠(yuǎn)丟失了,同時(shí)在另一端補(bǔ)0。

移位操作可對(duì)外部設(shè)備(如D/A轉(zhuǎn)換器)的輸入和狀態(tài)信息進(jìn)行譯碼,移位操作還可用于整數(shù)的快速乘除運(yùn)算。如表2-9所示(假定移位時(shí)補(bǔ)0),左移一位等效于乘2,而右移一位等效于除以2。

每左移一位乘2,注意x<<2后,原x的信息已經(jīng)丟失了,因?yàn)橐晃灰呀?jīng)從一端出,每右移一位相當(dāng)于被2除,注意,乘后再除時(shí),除操作并不帶回乘法時(shí)已經(jīng)丟掉的高位。反碼操作符為~。~的作用是將特定變量的各位狀態(tài)取反,即將所有的1位置成0,所有的0位置成1。位操作符經(jīng)常用在加密程序中,例如,若想生成一個(gè)不可讀磁盤(pán)文件時(shí),可以在文件上做一些位操作。最簡(jiǎn)單的方法是用下述方法,通過(guò)1的反碼運(yùn)算,將每個(gè)字節(jié)的每一位取反。

原字節(jié)?00101100

第一次取反碼?11010011

第二次取反碼?00101100

注意,對(duì)同一行進(jìn)行連續(xù)的兩次求反,總是得到原來(lái)的數(shù)字,所以第一次求反表示了字

節(jié)的編碼,第二次求反進(jìn)行譯碼又得到了原來(lái)的值。可以用下面的函數(shù)encode()對(duì)字符進(jìn)行編碼。

2.6.5??操作符

C語(yǔ)言提供了一個(gè)可以代替某些if-then-else語(yǔ)句的簡(jiǎn)便易用的操作符?。該操作符是三元的,其一般形式為:

EXP1?EXE2:EXP3

3

EXP1,EXP2和EXP3是表達(dá)式,注意冒號(hào)的用法和位置。

操作符“?”作用是這樣的,在計(jì)算EXP1之后,如果數(shù)值為T(mén)rue,則計(jì)算EXP2,并將結(jié)果作為整個(gè)表達(dá)式的數(shù)值;如果EXP1的值為Flase,則計(jì)算EXP3,并以它的結(jié)果作為整個(gè)表達(dá)式的值,請(qǐng)看下例:

x=10;

;y=x>9?100:200;

例中,賦給y的數(shù)值是100,如果x被賦給比9小的值,y的值將為200,若用if-else語(yǔ)句改寫(xiě),有下面的等價(jià)程序:

x=10;if(x>9)y=100;

;elsey=200;

;

有關(guān)C語(yǔ)言中的其它條件語(yǔ)句將在第3章進(jìn)行討論。

2.6.6?逗號(hào)操作符

作為一個(gè)操作符,逗號(hào)把幾個(gè)表達(dá)式串在一起。逗號(hào)操作符的左側(cè)總是作為void(無(wú)值),這意味著其右邊表達(dá)式的值變?yōu)橐远禾?hào)分開(kāi)的整個(gè)表達(dá)式的值。例如:

x=(y=3,y+1);

這行將3賦給y,然后將4賦給x,因?yàn)槎禾?hào)操作符的優(yōu)先級(jí)比賦值操作符優(yōu)先級(jí)低,所以必須使用括號(hào)。實(shí)際上,逗號(hào)表示操作順序。當(dāng)它在賦值語(yǔ)句右邊使用時(shí),所賦的值是逗號(hào)分隔開(kāi)的表中最后那個(gè)表達(dá)式的值。例如,

y=10;x=(y=y-5,25/y);

執(zhí)行后,x的值是5,因?yàn)閥的起始值是10,減去5之后結(jié)果再除以25,得到最終結(jié)果。

。在某種意義上可以認(rèn)為,逗號(hào)操作符和標(biāo)準(zhǔn)英語(yǔ)的and是同義詞。

2.6.7關(guān)于優(yōu)先級(jí)的小結(jié)

表2-10列出了C語(yǔ)言所有操作符的優(yōu)先級(jí),其中包括將在本書(shū)后面討論的某些操作符。注意,所有操作符(除一元操作符和?之外)都是左結(jié)合的。一元操作符(*,&和-)及操作符“?”則為右結(jié)合。

總結(jié)

以上是生活随笔為你收集整理的c语言运算程序,C语言运算符的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。