1樓:匿名使用者
!是邏輯非,所以表示式!x的值就只有兩種可能真(1)或假(0)
而~是按位取反,是二進位制位取反,例如~0的值是二進位制位都為1
2樓:匿名使用者
while(!x) 與while( x==0 )相同
while( ~x ) 中~運算子表示按位取反 , 如0000001 取反結果為11111110,還是不為0,而00000001取非時,結果為00000000,所以,這兩個是不同的!
3樓:匿名使用者
!是非,~是取反
看似差不多,其實在某些地方是不一樣的
邏輯非,我只見過對一個邏輯判斷的數字,比如:
int x = 1;
while(!x) //當x不等於0時
如果是取反,那可以支援較長的數字,比如:
100010101110010
取反後得011101010001101
4樓:匿名使用者
!是邏輯運算子非,while(!x)就是x不等於0的時候迴圈條件成立。
~是位運算子號,取反,while(~x)的意思是,位x取反,迴圈恆成立的。
5樓:shiro灬
!是邏輯運算子取反 ~是位運算子取反 第一個是真值取反 第二個是對數值的二進位制按位取反
!運算子的運算結果是 true變false false變true 比如:int a = 1; int b = !a; b中的值為0
~運算子的運算結果是一個數字的每一位二進位制取反 比如~(01001001)2結果為(10110110)2
6樓:丕屰教育
「 ! 」邏輯非運算子:!x執行結果只要x不是0,則其結果為0(假);如果0為0,則其結果為1(真)
「 ~ 」按位取反運算子:~x,按照x的二進位制位取反,只有x的二進位制是11111111(全1),則其結果為0(假),否則其結果一定不是0(真)
希望能夠幫到你。
7樓:
!是邏輯非,0變成1,任何非0的數變成0,~是按位取反,將一個數二進位制表示的每一位1變成0,0變成1。
比如一個變數x值為00000001,
那麼!x值為0,而~x為11111110
8樓:風若遠去何人留
!x和~x的計算規則不同,所以二者不能等價。
用於while()條件時,當表示式結果為0,while退出,否則while繼續迴圈。
對於!x,只有當x為0時,表示式結果為真,while會繼續迴圈;對於其它的值,!x的結果都是0,會退出迴圈。
於是!x的真值就是
x = 0, !x=1
x!=0, !x=0
而對於~x,是按位取反。
所以,只有當x的每位均為1時,結果為0。其它x值的運算結果均非0.
於是~x的真值為
x的每位全為1, ~x為0.
x的任意一位不為1,~x為非0值。
舉例來說,當x=1時,!x為0,while(!x)會退出迴圈。
而x=1時,~x結果與x型別相關,但一定不為0,這時while(~x)不會退出迴圈。
9樓:科技大記事
(!x)這是非x
(~x)這個不認識
廢話,肯定不=價啊
c語言開關語句C語言中的開關語句是什麼?
c語言的開關語句即switch語句,一般格式如下 switch 條件 這由數字的大小什麼沒有關係,它是滿足那個case就執行那個case。例如a 2 switch a 那麼就先執行case2.如果a 0 那麼就先執行case0.default是所有條件均不滿足的情況下才執行,例如a 3就會執行。de...
c語言中語句ab是什麼意思C語言中語句ab是什麼意思
先解釋一下 和 是 什麼意思 的意思是 左值和右值相加結果賦值給左值如 a 1 b 2 a b 後,a 3 b 2。的意思是變數自加1,如a 1 a a的值是2,在c中,有前置和後置如 a a 單獨使用的時候是沒有區別的,都是自加1,在有運算時就有區別了,前置的 是自加後才參與運算,後置的 是參與運...
C語言條件語句問題,c語言for語句中的條件問題
一個表示式的返回值都可以用來判斷真假,除非沒有任何返回值的void型和返回無法判斷真假的結構。當表示式的值不等於0時,它就是 真 否則就是假。一樣個表示式可以包含其他表示式和運算子,並且基於整個表示式的運算結果可以得到一個真 假的條件值。因此,當一個表示式在程式中被用於檢驗其真 假的值時,就稱為一個...