2010年7月19日 星期一

【程概】99 普考-程式實做(二)

用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。

答:

#include <>

int most_significant_set_bit(int num) {
int result = -1;
if (num > 0) {
while(num > 0){
result = result + 1;
num = num >> 1;
}
}
return result;
}


int main(int argc, char *argv[])
{
printf("most_significant_set_bit is %d\n", most_significant_set_bit(444));

system("PAUSE");
return EXIT_SUCCESS;
}

沒有留言:

張貼留言