取反php
❶ php 按位取反 運算符(~) 到底怎麼算出來的 $a = 8 $b = ~$a echo $b 結果是 - 9
在數值范圍內,~a = -(a+1)
8的二進制是1000,補滿32位,也就是前面28個0 1000
取反後 28個1 0111
第一位是符號位 1代表負數,剩下的27個1 0111
負數是用補碼表示的,補碼是原碼取反+1,也就是說 27個1 0111 是某個數的補碼,那倒推回去,這個數就是補碼-1後取反,也就是 27個1 0110取反,得到27個0 1001,也就是9,再加上前面的符號位,得到-9
$sql = "...這里是查詢該欄位的sql語句...";
$query = mysql_query($sql);
@$result = mysql_fetch_array($query);
//判斷開始 這里默認該欄位為 name
if(!empty($result['name'])){
echo "不為空";
}else{
echo "為空 也就是你要輸出 a 的地方";
}
注 這里用到了 empty empty(變數) 是這個變數是否為空 為空則為true 不為則為false 所以在前面加了一個! 取反的意思 你也可以不加 那麼為空的輸出就應該寫在if裡面 不為空寫在else里
❸ 在PHP中【邏輯運算符】和【位運算符】有什麼本質的區別
這個很難細說,不過和C語言中的邏輯運算符和位運算符是一樣區別的
下面給個參考(摘至某人博客):
一、邏輯運算符:
包括:1。&&邏輯與 2。||邏輯或 3。!邏輯非
邏輯運算符用於對包含關系運算符的表達式進行合並或取非
對於使用邏輯運算符的表達式,返回0表示「假」,返回1表示「真」。關於邏輯運算符的解釋
請注意:任何使用兩個字元做符號的運算符,兩字元之間不應有空格,即將==寫成= =是錯誤的。
假設一個程序在同時滿足條件a<10和b==7時,必須執行某些操作。應使用關系運算符和邏輯運算符「與」來寫這個
條件的代碼。用&&表示「與」運算符,該條件代碼如下:
(a<10) && (b==7);
類似地,「或」是用於檢查兩個條件中是否有一個為真的運算符。它由兩個連續的管道符號(||)表示。如果上例
改為:如果任一語句為真,則程序需執行某些操作,則條件代碼如下:
(a<10) || (b==7);
第三個邏輯運算符「非」用一個感嘆號(!)表示。這個運算符對表達式的真值取反。例如,如果變數s小於10,程序
程序需執行某些操作,則條件代碼如下:
(s<10)
或
(!(s>=10)) //s不大於等於10
關系運算符和邏輯運算符的優先順序一般都低於算術運算符。例如,5>4+3的計算與5>(4+3)運算符是一樣的,即
先計算4+3,再執行關系運算。此表達示的結果為「假」,即,將返回0。
下面的語句
printf("%d",5>4+3);
將輸出 0
可以總結為:&&的結果是真真為真。||的結果是假假為假。
二、位運算符:
包括:1。&位與符 2。|位或符 3。^位異或符 4。~位取反符
以操作數12為例。位運算符將數字12視為1100。位運算符將操作數視為位而不是數值。數值
可以是任意進制的:十進制、八進制或十六進制。位運算符則將操作數轉化為二進制,並相應地返回1或0。
位運算符將數字視為二進制值,並按位進行相應運算,運算完成後再重新轉換為數字。例如:
表達式10&15表示(1010 & 1111),它將返回表示1010的值10。因為真真得真,或者是11得1,同位全是1結果也是1
表達式10|15表示(1010 | 1111),它將返回表示1111的值15。假假得假。全零得零。
表達式10^15表示(1010 ^ 1111), 它將返回表示0101的值5。此時是同性相斥,相同的就為假。
表達式~10表示(~1010),它將返回表示0101的值 -11。此號好理解,按位取反
❹ php 位運算中的按位取反到底什麼意思
二進制 0變1 1變0
例如00000001按位取反後11111110