C語言位運算的坑舉例分析

這篇文章主要講解了“C語言位運算的坑舉例分析”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C語言位運算的坑舉例分析”吧!

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比鼓樓網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式鼓樓網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋鼓樓地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。

比如下面這個例子:

short a = 0xBC54;           //二進制為:1011 1100 0101 0100short b = 0x07A3;           //二進制為:0000 0111 1010 0011if((a | b) == 0xBFF7) {//0xBFF7二進制為:10111111 1111 0111    puts("true");} else {    puts("false");}

程序會打印“true”還是“false”呢?

答案是“false”。

因為C語言的位操作里有個規(guī)則,如果操作數(shù)長度小于“signed/unsigned int”,會把操作數(shù)轉(zhuǎn)型為“signed/unsigned int”再進行位操作。上述代碼里,進行“a|b”操作時,實際上是“((int)a)|((int)b)”操作,“a|b”這個表達式的類型其實是“int”,在上述代碼中的值是0xFFFFBFF7。

上述代碼里如果a和b的類型是“unsignedshort”,那么程序會打印“true”,因為“a|b”操作實際上是“((unsigned int)a)|((unsigned int)b)”操作。

感謝各位的閱讀,以上就是“C語言位運算的坑舉例分析”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對C語言位運算的坑舉例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!

文章標題:C語言位運算的坑舉例分析
網(wǎng)站網(wǎng)址:http://muchs.cn/article12/pdgigc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、品牌網(wǎng)站建設、云服務器關鍵詞優(yōu)化、自適應網(wǎng)站定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設