邏輯取反技巧


 

在編碼中,有時候要求當前的一個bool變量是true,但是隨后要對他取反成false。一般我們用

bool ans=flag?false:true;

這樣的語句來實現。但是今天我想到了一個更加好的辦法,請看代碼和測試:

代碼:

     int b=-1;
     printf("%d\n",~b);
     if(b) puts("b is true");
     b=0;
     if(~b) puts("~b is true");

測試結果:

我們用int類型代替bool進行邏輯判斷,計算機的數據用補碼表示,int的-1就是0xFFFFFFFF,用取反符號~進行取反之后,變成了0x0 。

而-1會被識別為true,0會被識別為false 。

至此,我們實現了用取反符號對true和false進行交替。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM