看板Programming
標 題請問一個位元運算問題
發信站KKCITY (Thu Dec 2 03:23:44 2010)
轉信站ptt!news.ntu!ctu-gate!ctu-peer!news.nctu!netnews.chu!News.leobbs.net!z
最近在看程式的題目
看到有一題C語言
想向各位大大請益
#include <stdio.h>
main()
{
int x = 3, y = 1, z = 3;
printf(“%d\n”, x ^ ~y & -z);
}
(假設運算子優先次序為[~, -]> & > ^。)
我的想法是:
~y = 1110;-z = -3 = 1011
之後~y & -z = 1010
x ^(XOR) 1010 = 0011 ^ 1010 = 1001 = -1
後來用compiler編譯
發現答案沒錯
但發現以下問題
1. compiler編譯~y & -z = -4
但剛剛算出的結果是1010,難道1010 = -4?
1010在這個例子中,應該是-2吧?(最高位代表負號)
以上問題,有請高手解惑
感謝
--
┌─────◆KKCITY◆─────┐ ◢
◤ 動態歌詞 讓你成為K歌之王!
│ bbs.kkcity.com.tw │ \^_^ / ★ http://www.kkbox.com.tw ★
└──《From:61.231.68.13
》──┘ ◤ 唱片公司授權,音樂盡情下載
--