回覆列表
-
1 # 使用者928021938244
-
2 # 情Q隨緣
比如說byte型別的5,在記憶體中是00000101,按位取反後就是11111010
當你再次輸出這個數時就變成了250
按位取反就是1變0,0變1
首先你要知道現在我們用的多數都是32位機,所以整形數都是4個位元組
那麼再看看按位取反的結果:
00000000 00000000 00000000 00000101 這是5
00000000 00000000 00000000 00000000 這是0
11111111 11111111 11111111 11111111 這是-1
11111111 11111111 11111111 11111110 這是-2
11111111 11111111 11111111 11111101 這是-3
11111111 11111111 11111111 11111100 這是-4
11111111 11111111 11111111 11111011 這是-5
11111111 11111111 11111111 11111010 這是5取反的結果-6
看懂了嗎?
所有一元運算子(如運算子)都按照下面的規則來計算表示式的值:
如果應用於未定義的表示式或null表示式,則會引發一個執行時錯誤。
將物件轉換為字串。
如果可能,將字串轉換為數字。否則,將引發執行時錯誤。
布林值被視為數字(如果為false,則為0;如果為true,則為1)。
運算子將應用於結果數字。
運算子查看錶達式的二進位制表示形式的值,並執行位非運算。
表示式中的任何一位為1,則結果中的該位變為0。表示式中的任何一位為0,則結果中的該位變為1。