31. 請問下面這支 C 程式的輸出結果為何?請注意,所有的位元移位運算為算術移位算。

【Aki】評論
int8_t 是存成Signed的8b☆☆...
【william】評論
int8_t 是存成Signed的8bit形態這代表說 最左邊的位元會變成標示正負用因此在第一個左移7的指令後 ind就從1 變成-1280000 0001 左移1的時候 因為還是正數 所以它會補0 變成0000 0010但是1000 0000 右移1情況 它是負數 因此要補1 會變成1100 0000也因此這題的for迴圈下的ind 每次變化應該是1000 00001100 00001110 0000以此類推因此輸出為1的三次運算分別是1111 1100 & 0000 0101 1111 1110 & 0000 01011111 1111 & 0000 0101 造就的輸出結果為0000 0111 而不是直觀的把5的二進位跟1做&運算 參考樓上補充:因此 做if運算時,1111 1100 & 0000 0101 1111 1110 & 0000 01011111 1111 & 0000 0101此三者都會得...