php取反運算值 {echo ~2;}你知道結果是什麽嗎?
阿新 • • 發佈:2017-09-09
計算機 表示 請問 color clas ech tro brush 第一個
echo ~2;
請問結果值是多少呢?
答案是 -3
為什麽?
首先計算機用補碼來存儲的,正數的原碼、反碼、補碼都是一樣的,
例如:
3的原碼、反碼、補碼都是
00000000 00000000 00000000 00000011
-3的原碼 10000000 00000000 00000000 00000011 (第一個是符號位,1表示負數)
-3的反碼 11111111 111111111 11111111 11111100 (符號位第一個不變,其他位置取反)
-3的補碼 11111111 111111111 11111111 11111101
再來看看之前的問題:
// 2的補碼 00000000 000000000 00000000 00000010 // ~運算後 11111111 111111111 11111111 11111101 (其實就-3的補碼) echo ~2; // 輸出 -3 // 4的補碼 00000000 000000000 00000000 00000100 // ~運算後 11111111 111111111 11111111 11111011 (其實就-5的補碼) // 11111111 111111111 11111111 1111010 (反碼) // 10000000 00000000 00000000 0000101 (原碼) echo ~4;//輸出 -5
php取反運算值 {echo ~2;}你知道結果是什麽嗎?