運算子習題

2021-09-23 14:31:57 字數 1759 閱讀 5363

1.寫乙個函式,返回引數二進位制中1的個數

比如: 15 0000 1111 4 個 1

方法一:除二取餘法

例如:

#include

#include

intcount_one_bits1

(unsigned

int value)

value= value/2;

}return count;

}int

main()

方法二:

移位法;移位法分為左移和右移兩種情況。左移規則:左邊拋棄,右邊補0。右移規則:右邊拋棄,左邊補0。

#include

#include

intcount_one_bits2

(unsigned

int value)

value = value>>1;

}return count;

}int

main()

方法三:

按位與法:即x=x&(x-1)。

假設 5 0110

& 4 0100

結果: 0010

分析:當5的二進位制位&比它小1即4的二進位制位時,5的二進位制位的個數就會少1。

#include

intcount_one_bits

(unsigned

int value)

return count;

}int

main()

2.獲取乙個數二進位制序列中所有的偶數字和奇數字,

分別輸出二進位制序列。

#include

intmain()

printf

("\n");

printf

("偶數序列為:");

for(i =

30; i >=

0; i -=2

)//向右移動30位,再與1所得結果是原來數字的第二位,再移28位...

printf

("\n");

system

("pause");

return0;

}

3.輸出乙個整數的每一位。

方法一:遞迴

#include

void

play

(int x)

}int

main()

方法二:迭代

#include

#include

intmain()

printf

("count=%d"

, count)

;system

("pause");

return0;

}

4.程式設計實現:

兩個int(32位)整數m和n的二進位制表達中,

有多少個位(bit)不同?

輸入例子:

1999 2299

輸出例子:7

include 

#include

intmain()

printf

("count=%d"

, count)

;system

("pause");

return0;

}

(運算子) 運算子

運算子既可作為一元運算子也可作為二元運算子。備註 unsafe context data guid 00bf87717d88a9fac1afadb796c675da 一元 運算子返回運算元的位址 要求 unsafe 上下文 bool data guid 9efd189df2cfb88799dca08...

運算子過載習題 解析

1.c 2.b 3.c 4.c 5.b 6.a 7.a 8.a 9.d operator c1,c2 x 1 通過運算子過載,只能改變運算子原有的 a 優先順序 b 運算元個數 c 運算元型別 d 結合性 c 解析 過載運算子時,運算子的優先順序 結合性或運算元數目不能改變,選項a b d是錯誤的 ...

JS運算子 算術運算子 比較運算子 賦值運算子

兩邊的變數都是number型別 則是單純的加法運算 當字串出現時 結果是字串型別 字串之後的內容 不論什麼型別 都會被作為字串進行拼接 例子 var num1 10 var num2 20 num num1 num2 var result num1 num2 num1 false console.l...