問題詳情

五、考慮 C 程式語言的位元運算(bitwise operation),變數 m 和陣列(array)n 的宣告
如下:
unsigned int m;
unsigned char n[4];
假設 m 的二進位值(binary value)為:
b32b31b30b29b28b27b26b25b24b23b22b21b20b19b18b17b16b15b14b13b12b11b10b9b8b7b6b5b4b3b2b1
寫一個 C 語言的程式將陣列 n 的元素(element)設定為:
n[0]: b31b32b29b30b27b28b25b26
n[1]: b23b24b21b22b19b20b17b18
n[2]: b15b16b13b14b11b12b9b10
n[3]: b7b8b5b6b3b4b1b2
即是將 m 的二進位值,以每兩個位元一組,作位元調換(bit swap),再切割成四個
位元組。除了迴圈控制變數(loop control variable)外,程式中不可使用+, -, *, /, %的
算術運算(arithmetic operations)(可以宣告和使用其他變數)。(20 分)

參考答案