2013年4月22日 星期一

解最高位元 mod 類型

99 年公務人員普通考試試題 代號:
類 科: 資訊處理
科 目: 程式設計概要
考試時間: 1 小時 30 分 座號:
※注意:禁止使用電子計算器。
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
(請接背面)
全一張
(正面)
44020
一、用 C 語言撰寫一個函式 int most_significant_set_bit(int num),它能將一個 32-bit 整
數的最高有效位(The most significant bit)為 1 的位置計算出並回傳出來,如果全
為 0,則回傳 -1。例如數值 444 以二進位表示為 00000000 00000000 00000001
10111100,所以它回傳出最高有效位為 1 的位置為 8,也就是說 bit 8。(25 分)

main(){
int x=32767;
/*32767 以上的 Good luck上帝保佑*/
clrscr();
printf("%d",convert(x));
getch();
}

int convert(int x){
if (x){return 1+convert(x/2);}
return -1;
}

沒有留言:

張貼留言