js 实现2的n次方计算函数_js 判断一个数字是不是2的n次方幂的实例
昨天去面试时,面试官问了一道面试题,说如何判断一个数是不是2的n次方幂,我当时不知道2的n次方幂是什么(糗大发了),还好给我解释了一下。最后回家上网查查资料,整理了一下方法。
方法一
如何判断一个数是否是2的n次方幂,其简单判断方法就是这个数num直接除2,若余数为0,则num/2再除2,再判断是不是余数是不是0,是的话继续按上一步来,直到最后为num=1。
比如:
2 2%2=0 (2/2)=1 是
4 4%2=0 (4/2)%2=0 (4/2/2)=1 是
6 6%2=0 (6/2)%2=1 不是
7 7%2=1 不是
24 24%2=0 (24/2)%2=0 (24/2/2)%2=0 (24/2/2/2)%2=1 不是
代码实现:
function check(num){
if(num != 1){
while(num != 1){
if(num%2 == 0){
num = num / 2;
}else{
return false;
}
}
return true;
}else{
return true;
}
}
结果如下:
方法二
通过二进制的方法可以判断一个数num是不是2的n次方幂,规律可知,只要是2的次方幂,必然是最高位为1,其余为0,当num-1时,则最高位是0,其余是1.
按位与运算: 1&1=1 0&1=0 0&0=0 1&0=0
2 ---> 10 3 ---> 11
4 ---> 100 6 ---> 110
8 ---> 1000 7 ---> 111
例子:
8 的二进制 1000 8-1 的二进制 0111 按位与运算 1000&0111 --> 0000 所以8是2的n次方幂。
9 的二进制 1001 9-1 的二进制 1000 按位与运算 1001&1000 ---> 1000 所以9不是2的次方幂。
24 的二进制 11000 24-1 的二进制 10111 按位与运算 11000&10111 ---> 10000 所以24不是2的次方幂。
可以通过num.toString(2)来写出num的二进制。
代码实现:
function check(num){
return (num > 0) && ((num & (num - 1)) == 0);
}
结果如下:
另外 1也是2的0次方幂。
还有其他条件没有写出,这个方法是来判断一个数是不是2的n次方幂,并没有写出这个数是不是整数,可以的话,自己添加条件判断。
以上这篇js 判断一个数字是不是2的n次方幂的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
js 实现2的n次方计算函数_js 判断一个数字是不是2的n次方幂的实例相关推荐
- python编写一个函数判断一个数是否为素数是则返回yes_编写函数isPrime,判断一个数字是否为素数,是则返回字符串 YES ,否则返回字符串 NO 。_学小易找答案...
[填空题]语句 x = (3,) 执行后x的值为_______________. [填空题]字典对象的___________方法可以获取指定"键"对应的"值", ...
- 2的多少次方是2048用php代码,js 如何判断一个数字是不是2的n次方幂
昨多现业讲进行效通近年有务这行定果过近年有天去面试时,面试官问了一道面试题,说如何判断一个数是不是2的n次方幂,我当时不知道2的n次方幂是什么(糗大发了
- js 实现2的n次方计算函数_JS中数据结构与算法---排序算法
排序算法的介绍 排序也称排序算法 (Sort Algorithm),排序是将 一组数据 , 依指定的顺序 进行 排列的过程 . 排序的分类 内部排序 : 指将需要处理的所有数据都加载 到 内部存储器( ...
- C语言---写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串
题目: 写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串. #include <string.h> #include <stdio.h> void left_re ...
- 编写一个函数,该函数能判断一个英文句子str(带空格)中是否含有某个单词w,如“How old are you?”含有“old”。在main函数中输入一个英文句子,再输入一个单词,如果英文句子中含有那
题目要求: 编写一个C程序,实现以下功能: 编写一个函数,该函数能判断一个英文句子str(带空格(升级版))中是否含有某个单词w,如"How old are you?"含有&quo ...
- python用fun判断水仙花数_功能:调用函数fun判断一个三位数是否水仙花数。
功能:调用函数fun判断一个三位数是否"水仙花数".在main函数中从键盘输入一个三位数,并输出判断结果.请编写fun函数.说明:所谓"水仙花数"是指一3位数, ...
- 用mod函数判断奇偶C语言,Excel2007中利用if和mod函数判断一个数字是否为奇偶
判断一个数字是否为奇偶的方法有很多,可以使用眼力来进行快速判断,也可以使用函数来进行处理.第一种方法适用于数据量很少的情况,如果数据量比较庞大就不适宜了:第二种方法适用于数据量比较大的情况下,理论上靠 ...
- js 实现2的n次方计算函数_密码杂凑函数的基本性质探讨
密码学研究的宗旨是保证数据和通信的机密性.完整性和认证性,其中完整性和认证性的实现依赖于一类关键的密码学函数---密码杂凑函数.密码杂凑函数通常用来计算数据的短"指纹"(也称杂凑值 ...
- js 实现2的n次方计算函数_「计算机组成原理」:一文快速了解计算机原理知识点-附思维导图...
衡量一台计算机性能的优劣是根据多项技术指标综合确定的,既包括硬件的各种性能指标,又包括软件的各种功能. 第一章.计算机系统概论 1.计算机系统组成及性能: 计算机系统是由"硬件"和 ...
最新文章
- python使用heapq快速查找最大或最小的 N 个元素
- python输出数据到excel-使用python将大量数据导出到Excel中的小技巧分享
- ubuntu 安装 mongodb并修改仓库路径
- 关于WebSocket分布式实现的一种方案
- 电脑复制粘贴_手机扫一扫,现实物体隔空复制粘贴进电脑!北大校友的AI新研究,现在变成AR酷炫应用...
- mybatis基础学习3---特殊sql语句(备忘)
- IOS学习:常用第三方库(GDataXMLNode:xml解析库)
- 安卓平板usb变显示器_RJ45与USB信号接入工业显示器有何不同?
- 树莓派B+使用入门RPI库安装wringPi库安装
- Java并发系列—并发编程挑战
- 对linux下loop设备的理解。
- Xeogl 基于 WebGL 的 3D 引擎
- Linux 下文件IO编程进程控制实验
- matlab powergui的作用,powergui模块作用
- RK3288开发板——Debian8系统制作
- 计量模型 | 前定变量#时间FE
- 信号相参性(相干性)
- JS中(function(){xxx})(); 这种写法是什么意思?
- cpa禁用计算机型号,CPA考试计算器有讲究,这些计算器禁止携带入场!
- DNS主从服务器的构建