通常我们在判断一个数是奇数还是偶数的时候,大部分都会用下面的这个方法去判断(没有考虑输入的数是小数的情况)。

function fn(number){if(number % 2 === 0) return '偶数';return '奇数';
}

有时候可能会不小心写成下面这样。

function fn(number){if(number % 2 === 1) return '奇数';return '偶数';
}

第二种判断方法是有问题的,如果当我们要判断的这个数是-3时回怎样呢?-3 % 2 = -1,-1 !== 1所以我们得到这个数是偶数的错误答案。所以我们可以换一种方法来进行奇数,偶数的判断。那就是使用&进行判断。

我们知道&会将左右两边要判断的数据转换为二进制,比如8 & 1

8: 00001000

1: 00000001

得到的结果是00000000(2) => 0(10)

这里们判断的其中一个操作数固定是1,当我们拿其它数和1进行&操作时,最后的结果要么是0要么是1,因为1的二进制数除了最后一位,其它位的数字都是0。

当一个数是偶数时,它转为二进制时,最后一位一定是0,如果它是奇数,那么它的二进制数的最后一位一定是1,所以一个数和1进行&操作后如果其值为0,那么这个数就是偶数,否则这个数就是奇数。

代码如下:

let number
if(number & 1){console.log('奇数')
}else{console.log('偶数')
}

如果本文中有什么错误,还希望大家指出,一起学习。

判断奇数和偶数不常见的方法相关推荐

  1. javascript判断日期奇偶_JavaScript判断奇数和偶数的两种方法

    JavaScript是前端开发中必不可少的一部分,那你知道如何用JS判断一个数是奇数还偶数吗?这篇文章就给大家分享JS判断奇数和偶数的两种方法,有一定的参考价值,感兴趣的朋友可以参考一下. 方法一:用 ...

  2. python判断奇数和偶数_从Python中的给定列表中提取偶数和奇数

    python判断奇数和偶数 In this problem, we are given a list by the user which may be the mixture of even and ...

  3. 实战演练 | 数据库中检索奇数或偶数行的简单方法

    从表中仅选择奇数行或偶数行听起来像是你永远不必做的事情,除非你自行这样做.在谷歌快速搜索一下,可以证实这事情是经常有人会做的,但是,很少有数据库从业者知道如何做,他们总是在线数据库社区求助寻找答案.作 ...

  4. 关于异或的判断奇数还是偶数的性质。

    异或可以简单理解为无进位加法,比如2的二进制为10,1的二进制为01,1^2的结果为3,二进制为11. 那么通过这个性质可以用来判断奇数还是偶数. 具体内容 比如一个偶数为6,它的二进制为110:1的 ...

  5. 如何高效地判断奇数和偶数

    在我们日常的编程当中,常常会遇到判断某个整数属于奇数还是偶数的情况. 大家一般的处理做法是用这个整数和2取模.然后判断是等于1还是等于0. 这里,我要为大家介绍一种快速有效的判断做法,利用2进制进行判 ...

  6. 判断奇数还是偶数【c语言】

    要求:判断一个数是奇数还是偶数 法1:三目运算符实现 int main() {int num = 5;num % 2 == 0 ? printf("yes") : printf(& ...

  7. [PTA]C语言 判断奇数和偶数

    输入一个整数,判断该数是奇数还是偶数. 输入格式: 输入整数n. 输出格式: 如果该数是奇数就输出"odd",偶数就输出"even"(输出不含双引号). 输入样 ...

  8. javascript判断日期奇偶_js中判断奇数或偶数

    给定一个数字列表,请确定其元素的总和是奇数还是偶数. 将答案作为字符串匹配"odd"或"even".如果输入数组为空,则将其视为:([0]具有零的数组) fun ...

  9. html中奇数偶数判断,js中判断奇数或偶数

    给定一个数字列表,请确定其元素的总和是奇数还是偶数. 将答案作为字符串匹配"odd"或"even".如果输入数组为空,则将其视为:([0]具有零的数组) fun ...

  10. Excel:5种判断奇数和偶数的方法

    整数中,能被2整除的数是偶数(英文:EVEN,数学术语),不能被2整除的数是奇数(英文:ODD,数学术语),偶数可用2k表示,奇数可用2k+1表示,这里k是整数.0是一个特殊的偶数.那么,该如何使用E ...

最新文章

  1. 数组做参数_ES6 系列:你不知道的 Rest 参数与 Spread 语法细节
  2. ROS-Baxter抓取
  3. Nat. Med. | 人工智能临床研究新指南
  4. java类验证和装载顺序_java类加载机制,你会了吗?
  5. 【机器学习】深入理解CatBoost
  6. 【Python数据预处理】 归一化(按列减均值,除方差),标准化(按列缩放到指定范围),正则化(范数)
  7. android_jsbridge,让你和前端愉快的交互
  8. 如果生活中没有数学,那么。。。
  9. [html] viewport常见设置都有哪些?
  10. java数组更新_java刷新数组到jList
  11. 常用JS库源码 - store.js源码/underscore.js源码
  12. 解决IE8不支持数组的indexOf方法
  13. paip.互联网产品要成功的要素
  14. 结合使用Canvas API与History API——模拟绘图
  15. Linux数据库迁移
  16. DB2查看事务日志使用空间
  17. linux gpu 地址空间,显卡内存和进程的虚拟地址空间
  18. 拉丁超立方采样的思想和代码
  19. python正则表达式匹配数字和字母_只能输入数字和字母组合的正则表达式怎么写?...
  20. leetcode--石子游戏

热门文章

  1. 有线以太网RJ45网口转无线WiFi,网卡转wifi,有线转无线,RJ45转wifi方案
  2. scara机器人dh参数表_scara机器人技术参数
  3. 【转】我的算法学习之路
  4. 安卓选择市区的省市区联动
  5. 最新官方新浪短网址API接口分享-附代码调用演示
  6. NVIDIA 460.79版显卡驱动发布:全力优化《赛博朋克2077》
  7. sails mysql_sails-mysql架构数据类型
  8. Tomcat的appBase和docBase解析
  9. 中国移动发狠,给携转用户巨额优惠,反击中国电信
  10. 话费通html模板,充话费好评怎么写 ——好评语模板