js判断数字是奇数还是偶数的2种方法实现

时间: 2018-06-06阅读: 22651标签: 数据

奇数和偶数的判断是数学运算中经常碰到的问题,比如:有变量x,如果x=1则为奇数,为2则为偶数。这篇文章主要讲解通过JavaScript来实现奇偶数的判断。


方法一、求余% 

if...else的形式:

if( x%2 ==0 ){
  // 偶数    
}else{
 // 奇数  
}

三元运算的形式:

(x%2 ==0) ?"偶数":"奇数"


分析:

 根据奇数偶数的定义,若整数除以2没有余数,则为偶数,否则为奇数。 因此,偶数取余结果为0,奇数取余结果为非零 在if(条件)判断中,若条件为非零,表示条件成立,否则表示条件不成立(即不执行if()之后的语句) ?:的情况类似


方法二、 &1

if...else的形式:

if( x&1 ==0 ){
  // 偶数    
}else{
 // 奇数  
}

三元运算的形式:

(x&2 ==0) ?"偶数":"奇数"


分析:

首先得知道按位与运算&的使用方法,按位与运算: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。


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/860

js常见的八种数据结构

数组(Array)数组是最简单、也是使用最广泛的数据结构。栈(Stack)栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。

vue数据监听

关于数据监听,vue提供了两种方式watch和computed(计算属性),配合生命周期有的时候我们会使用使用多个组件进行传值,在watch到变化的时候往往监听的组件还没有加载完成这时候就需要配合生命周期使用

nodejs接收前端formData数据

很多时候需要利用formdata数据格式进行前后端交互。前端代码可以是如下所示:上面代码不仅有直接生成的formdata数据,还有利用append添加的。后端应该怎么接收?

处理 JavaScript 中的非预期数据

动态类型语言的最大问题就是无法保证数据流总是正确的,因为我们无法“强行控制”一个参数或变量,比方说,让它不为 null。当我们面对这些情况时的标准做法是简单地做一个判断:这样做的问题在于会污染我们的代码

Js中实现XML和String相互转化

XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。 这篇文章主要介绍Js中实现XML和String相互转化

单向数据流和双向数据流

react的特色是单向数据绑定;而vue中的特色是双向数据绑定。不过vuex和redux这两个状态管理器都是提倡单向数据流来管理数据。只不过vue为了众多UI控件的考虑提供了双向数据绑定的方式

17 款可视化工具,让你的数据更美观

想让数据变得更好看?不必成为经验丰富的数据科学家,也不必成为平面设计师。有一些能让数据从简单的表格变成多种多样的图形,地图甚至词“云”。并不是所有的工具都适合你,但这些工具确实很有用

leetcode 1032. Stream of Characters

用字典树即可解决。首先在init的时候,把words中所有word逆置后存入字典树中;在query的时候,也有逆序的方式记录所有历史query过的值,同时判断其前缀是否存在于字典树中即可。

Vue项目数据动态过滤实践

页面从后台拿到的数据是由0、1之类的key,而这个key代表的value比如0-女、1-男的对应关系是要从另外一个数据字典接口拿到的

JS最新基本数据类型:BigInt

BigInt数据类型的目的是比Number数据类型支持的范围更大的整数值。在对大整数执行数学运算时,以任意精度表示整数的能力尤为重要。使用BigInt,整数溢出将不再是问题。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!