JavaScript中如何判斷數(shù)字是奇數(shù)還是偶數(shù),很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
奇數(shù)和偶數(shù)的判斷是數(shù)學(xué)運(yùn)算中經(jīng)常碰到的問題,比如:有變量x,如果x=1則為奇數(shù),為2則為偶數(shù)。這篇文章主要講解通過JavaScript來實(shí)現(xiàn)奇偶數(shù)的判斷。
奇數(shù)和偶數(shù)的判斷方法一、求余%
if...else的形式:
if(x%2==0){
//偶數(shù)
}else{
//奇數(shù)
}
三元運(yùn)算的形式:
(x%2==0)?"偶數(shù)":"奇數(shù)"
分析:
根據(jù)奇數(shù)偶數(shù)的定義,若整數(shù)除以2沒有余數(shù),則為偶數(shù),否則為奇數(shù)。因此,偶數(shù)取余結(jié)果為0,奇數(shù)取余結(jié)果為非零在if(條件)判斷中,若條件為非零,表示條件成立,否則表示條件不成立(即不執(zhí)行if()之后的語句)?:的情況類似
奇數(shù)和偶數(shù)的判斷方法二、&1
if...else的形式:
if(x&1==0){
//偶數(shù)
}else{
//奇數(shù)
}
三元運(yùn)算的形式:
(x&2==0)?"偶數(shù)":"奇數(shù)"
分析:
首先得知道按位與運(yùn)算&的使用方法,按位與運(yùn)算:a&b。參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)位相與,只有對(duì)應(yīng)的兩個(gè)二進(jìn)位均為1時(shí),結(jié)果位才為1,否則為0。參與運(yùn)算的數(shù)以補(bǔ)碼方式出現(xiàn)。
例如:9&5可寫算式如下:先分別將兩個(gè)數(shù)化為二進(jìn)制,在進(jìn)行運(yùn)算
00001001(9的二進(jìn)制補(bǔ)碼)
&00000101(5的二進(jìn)制補(bǔ)碼)
00000001(1的二進(jìn)制補(bǔ)碼)
可見9&5=1。
對(duì)于任何一個(gè)數(shù)&1,因?yàn)?的二進(jìn)制是1,在它的補(bǔ)碼中,除了最后一位為1,其它全部為0,前面提到,按位與運(yùn)算&只有當(dāng)兩個(gè)數(shù)都為1時(shí)結(jié)果才是1,因此,任何一個(gè)數(shù)與1相與,只有最低位可能為1,因此最終的結(jié)果只有0和1兩種情況,而且結(jié)果取決于另外那個(gè)數(shù)二進(jìn)制中的最后一位(若為1,最終結(jié)果便為1,若為0,結(jié)果便是0)
總之,奇數(shù)和偶數(shù)的判斷從二進(jìn)制化為十進(jìn)制中,需要加上二進(jìn)制中最低位乘以2的零次方(1*2^0或0*2^0),然后再加上對(duì)應(yīng)位乘以2^1,2^2,2^3,2^4……但是之后這一些都數(shù)2的倍數(shù),也就是都是偶數(shù),要讓這些偶數(shù)編程奇數(shù),取決于2^0這一項(xiàng),即,一個(gè)十進(jìn)制數(shù)字是奇數(shù)還是偶數(shù),取決于二進(jìn)制中最低位那個(gè)數(shù)是0還是1。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。