suibi
- css设置圆角阴影的属性代码(css圆角样式代码大全)
- js判断奇偶数的方法(分享编程奇偶数的判断代码)
- html圆角属性代码讲解(html怎么设置圆角矩形教程)
- win32和win64的区别介绍(猜猜win7哪个系统版本最好用)
- 什么是js代码编程(js编程特点详细介绍)
- photoshop版本顺序近32年发展历程(ps各个版本及年份介绍)
- 学会node.js能做什么(nodejs开发前端的特点)
- linux改IP地址命令怎么改(一分钟修改服务器ip地址)
- php数组函数的使用方法(常用的数组函数代码)
- ps人物抠图步骤教程(ps图片素材人物高清修图过程)
- js数组indexof方法找某个数(js判断数组中是否包含某个对象用法)
- php跨域问题的解决方案(一招彻底解决跨域问题)
- mysql密码忘了怎么找回(手把手教你找回mysql登录密码)
- html音乐播放器插件代码(Vue制作网页音乐播放器)
- python解释器是什么意思(详细讲解python语言解释器)
- ps的全称是什么(ps全称叫什么名字)
- python保留2位小数点怎么实现(保留2位小数实现方法)
- springmvc原理实现机制详解(mvc工作原理最简单的概述)
- html背景图片全屏特效代码(超简单的网页设计方法)
- css如何设置背景颜色透明度(实例分享css透明度属性代码)
- vue和react的区别以及优劣势(你知道大公司用react还是vue吗)
- vue的优势及特点有哪些(带你了解vue的强大之处)
- linux删除分区信息命令(删除逻辑分区的详细步骤Linux)
- css文字水平居中对齐代码设置(实例css让文字居中代码)
- 后缀xml是什么文件格式(详解xml格式文件)
- 电脑p图软件哪个好用(电脑用什么ps软件最好)
- win7桌面的文件在c盘哪个位置(桌面文件路径如何查看)
- 查看数据库字符集格式语句(一文读懂数据库的字符集)
- vue与react的区别有什么不同(Vue和React深度比较)
- Linux端口转发脚本怎么设置(端口转发最常见的使用场景)
- excel阅读模式找不到怎么办(表格没有找到阅读模式怎么设置)
- js转义字符用法案例解析(转义字符的定义)
- ps格式介绍(详解ps文件有多少种格式)
- 如何查看nodejs版本是多少(node版本的查看方法)
- 服务器的作用和用途(网络服务器的种类介绍)
- 怎样做网站(分享制作自己网站的流程步骤)
- linux删除目录的命令是什么(linux如何删除指定文件目录)
- html视频标签属性代码是什么(网页视频标签代码怎么写)
- dreamwearver是什么软件(推荐一款前端开发工具)
- python中return的用法及意义和实践详解
js判断奇偶数的方法(分享编程奇偶数的判断代码)
前两天翻译了一篇文章,如何找到数组里面的唯一数字 – 码中人 ,发现按位运算可以做很多事,包括可以很便捷地判断数的奇偶。
原文:
https://www.geeksforgeeks.org/check-if-a-number-is-odd-or-even-using-bitwise-operators/翻译:码中人
给定一个数 N,使用位运算符检查该数是偶数还是奇数。如:
输入: N = 11
输出: Odd(奇数)
输入: N = 14
输出: Even (偶数)
方法1:按位异或
按位异或是指参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0
这个方法是用二进制数0001对数字的二进制最后一位进行处理。如果数字是偶数,数字异或之后操作会增加1,否则,数值会减少1。
所以代码如下:
看看结果 :
纳尼?怎么回事。
这里涉及运算符的优先级问题,因为相等运算符(==)的优先级比按位异或(^)要高。所以:
n ^ 1 == n + 1
相当于:
n^(1 == n+1)
即:
11为整数,为真。所以会出现11为偶数的错误。
应用分组修改优先级,正确应为:
运算符优先级 – JavaScript | MDN
方法2:按位与
按位与操作符用和号( &)表示,有两个操作数。本质上,按位与就是将两个数的每一个位对齐,然后基于真值表中的规则,对每一位执行相应的与操作。
规则为:1&1=1,1&0=0,0&1=0,0&0=0。
所以将数字与1相与,如果结果为1,即为奇数。如果为0,即为偶数。
方法3:按位或
按位或操作符用管道符( |)表示,规则为:1|1=1,1|0=1, 0|1=1 ,0|0=0。
同样将数值与1相或,得到的值如果比原来的数要大,即为偶数。数值不变即为奇数。
(完)
写笔记