(筆記)兩種判斷奇數偶數的方法

2021-06-19 20:22:49 字數 1402 閱讀 3902

學習的需要,查詢了如何判斷奇偶數的方法,自己做了以下筆記。

方法來自網路,已標明出處。

方法一

、求餘%

具體實現:

1、if( x % 2 )

// 奇數

else

// 偶數

2、(x%2)?奇數:偶數

分析:

根據奇數偶數的定義,若整數除以2沒有餘數,則為偶數,否則為奇數。

因此,偶數取餘結果為0,奇數取餘結果為非零

在if(條件)判斷中,若條件為非零,表示條件成立,否則表示條件不成立(即不執行if()之後的語句)

?:的情況類似

方法二

、與1相與  &1

具體實現:

1、if( x & 1 )

// 奇數

else

// 偶數

2、(x&1)?奇數:偶數

分析:

首先得知道按位與運算&的使用方法

按位與運算      a&b

參與運算的兩數各對應的二進位相與,

只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。

例如:9&5可寫算式如下:

先分別將兩個數化為二進位制,在進行運算

00001001 (9的二進位制補碼)

&  00000101 (5的二進位制補碼) 

—————

00000001 (1的二進位制補碼)

可見9&5=1。

對於任何乙個數 & 1,因為1的二進位制是1,在它的補碼中,除了最後一位為1,其它全部為0,前面提到,按位與運算&只有當兩個數都為1時結果才是1,因此,任何乙個數與1相與,只有最低位可能為1,因此最終的結果只有0和1兩種情況,而且結果取決於另外那個數二進位制中的最後一位(若為1,最終結果便為1,若為0,結果便是0) 

從二進位制化為十進位制中,需要加上二進位制中最低位乘以2的零次方(1*2^0或0*2^0),然後再加上 對應位乘以 2^1,2^2,2^3,2 ^4……但是之後這一些都數2的倍數,也就是都是偶數,要讓這些偶數程式設計奇數,取決於  2^0這一項,即,乙個十進位制數字是奇數還是偶數,取決於二進位制中最低位那個數是0還是1。

參閱:

Python 判斷奇數偶數的方法

以下例項用於判斷乙個數字是否為奇數或偶數 coding utf 8 filename test.py python 判斷奇數偶數 cbwsjgh 如果是偶數除於 2 餘數為 0 如果餘數為 1 則為奇數 num int input 輸入乙個數字 if num 2 程式設計客棧 0 print 是偶數...

java兩種方式實現執行緒求奇數 偶數

package com.ljl.org.test4 demo interview author jilongliang date 2013 4 17 分別使用runnable介面和thread類程式設計實 編寫一應用程式建立兩個執行緒乙個執行緒列印輸出1 1000之間所有的奇數 odd number...

兩種if判斷

上海面試三 下面是c語言中兩種if語句判斷方式。請問哪種寫法更好?為什麼?int a if a1 第一種判斷方式 if 1a 第二判斷方式 答 這是個主觀題,不過多數人認為第二種好。從執行效率上講,第二種效率更高。另外,在編寫 時如果不小心將 寫成 即變成 1 a 這時編譯器將會給出錯誤提示。而如果...