我必須說w = 33的程序輸出。我不知道該怎麼做。有沒有人有一個想法如何解決這個問題,而不寫每個數字的二進制表示?在c中使用位輸出
void notChicken(int w)
{
unsigned int v1 = 0x12345678;
unsigned int v2 = 0x87654785;
unsigned int v3 = 0xffffffff;
unsigned int tmp;
tmp = (v1 >> 3) | (v2 << 3);
tmp &= v3 & ~(v3 << (w >> 1));
printf("%8x\n", tmp);
}
感謝
至於一種瞭解發生了什麼的方法,將所有表達式分解成最簡單的子表達式。將每個子表達式存儲在一個單獨的變量中。然後使用調試器在監控變量的同時逐行執行代碼,以查看每個步驟中發生的情況。 –
或者如果您無法通過調試器訪問計算機,請使用*筆和紙!* –
如果沒有計算機,最簡單的方法是使用筆和紙轉換爲二進制文件。至少直接在十六進制數字上進行比特級操作超出__我的智力可能性。 –