#include int main()
else
printf("%d",te3);//輸出:2
printf("%u",(char)(~te1));//無符號char 輸出是:0
//無符號char 輸出解析:
//te1:0000 0000 0000 0000 0000 0000 1111 1111
//~te1:1111 1111 1111 1111 1111 1111 0000 0000
//~te1強制轉換char:0000 0000 所以輸出為0
printf("%u",(~te1)); //無符號 輸出是:4294967040
//無符號 輸出解析:
//te1:0000 0000 0000 0000 0000 0000 1111 1111
//~te1:1111 1111 1111 1111 1111 1111 0000 0000
//~te1=二進位制1111 1111 1111 1111 1111 1111 0000 0000=4294967040
printf("%d",(~te1)); //有符號int 輸出是:-256
//有符號 輸出解析:
//te1:0000 0000 0000 0000 0000 0000 1111 1111
//~te1:1111 1111 1111 1111 1111 1111 0000 0000
//由於:~te1開頭為1 是負數 補碼輸出
//~te1=1000 0000 0000 0000 0000 0000 1111 1111 + 1 = -256
if(-256 == (~te1))
else
printf("%d",te3);//輸出:1
//說明在條件語句中(~te1)是按有符號輸出 然後在做比較。
return 0;
}
C語言按位與 按位或 按位異或 按位取反 (一)
與運算 兩者都為1為1,否則為0 1 1 1,1 0 0,0 1 0,0 0 0 或運算 兩者都為0為0,否則為1 1 1 1,1 0 1,0 1 1,0 0 0 非運算 1取0,0取1 1 0,0 1 10001 01110 異或運算 兩者相等為0,不等為1 1 1 0,1 0 1,0 1 1,0...
C語言按位與 按位或 按位異或 按位取反(二)
位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位的...
C語言按位取反 的簡單理解
學習按位取反時,一直不是很理解,為啥對0取反就是 1,對76取反就是 77,網上有說記住x x 1就可以了,可還是有點難懂。所以我來解釋一波為啥對0取反就是 1?十進位制數0的十六進製制表示為 0000 0000 對其 取反 後得到 1111 1111 此時這個值轉化為十進位制就是255 此時255...