2的幂次方

news/2024/12/29 10:53:04/

2的幂次方

判断一个数是否为2的幂次方?

我们可以参考如下链接:
判断一个数是否为2的N次方

借鉴文中的分析,我认为:
其实一个数n,如果是2的幂次方数,则n的二进制原码中一定只有一个1,且在最高位;而n-1的二进制原码中一定只有一个0,也在最高位,那么n&(n-1)==0
反之,如果n&(n-1)的结果是0,无法推出n2的幂次方。例如n等于1n-1等于0n&(n-1)的结果是0,但是n不是2的幂次方。
但是,n的二进制原码中只有一个1,且在最高位,可以推出n2的幂次方。

所以我们的结论是:
n2的幂次方 ← → ←→ ←→ n的二进制原码中只有一个1,且在最高位

求解不大于数n的最大的2的幂次方?

同理,我们只需要找到n的二进制原码中1的最左位置,将其余位置0即可。如下为python实现代码:

	seed_length = 8963bin_sl = bin(seed_length)neurons = pow(2, len(bin_sl)-3)

其中,neurons为不大于seed_length2的幂次方的上界。8963转换为二进制原码为0b1111001101100,即代码中的bin_sl,其数据类型为<class 'str'>0b标识着二进制字符串,不大于seed_length2的幂次方的上界即为0b1000000000000。由于二进制原码没有前置0,最高位必为1,所以我们直接获取二进制字符串长度,之后求解2len(bin_sl)-3次方即可。


http://www.ppmy.cn/news/56404.html

相关文章

Ubuntu 软件包管理

Ubuntu 软件包管理主要用到了 apt 和 dpkg 两个工具。我们用的最多的就是用他们提供的命令来安装和卸载软件&#xff0c;但他们是如何工作的&#xff0c;我们也许并不十分清楚&#xff0c;这几天&#xff0c;我专门梳理了一下&#xff0c;以下是我整理出来的一些资料&#xff0…

【毕业设计】大学生综测管理系统

目录 前言介绍一&#xff0e;开发环境1.JDK配置2.安装IDEA3.MySQL安装 二&#xff0e;项目导入和配置三&#xff0e;数据库配置1.创建数据库2.修改项目数据库配置 四&#xff0e;项目部署1.项目启动2.项目访问 关于我 前言 【毕业设计】大学生综测管理系统 介绍 大学生综合素…

颠覆Android开发行业未来,让Kotlin成为您的新宠

会Java还要学习kotlin吗&#xff1f; 看看这位老哥的回答&#xff1a; kotlin语言有前景吗&#xff1f; 看看在职高级开发怎么说的&#xff1a; Kotlin是什么&#xff1f; Kotlin是一种基于Java虚拟机&#xff08;JVM&#xff09;的静态类型编程语言&#xff0c;可以与Java代…

javascript-算法基础-01

时间复杂度 O(1) O(n) O(n) O(2ⁿ) 记得有次面试, 让我求1 … n, 我说用for循环. 当时竟然都忘了等差数列公式了… 一个简单的求和 let res 0 // 1 for(let i; i < arr.length; i){ // 1res arr[i] // n }let res 0 for(const …

设计模式中职责链 chain of responsibility案例举例

JAVA实现案例 职责链&#xff08;Chain of Responsibility&#xff09;模式是一种行为型模式&#xff0c;它将请求从发送者和接收者解耦&#xff0c;通过沿着一个链传递请求&#xff0c;使得可以多个对象都有机会处理请求。下面是一个简单的JAVA实现职责链模式的例子&#xff…

从训练数据视角:看机器学习和深度学习的大三范式

从训练数据视角&#xff1a;机器学习和深度学习 “模型”的大三范式 训练数据一般分为两个部分&#xff0c;一部分是数据本身&#xff0c;一部分是标注(Label)。训练是通过数据对应的标注&#xff0c;让模型理解数据。 1.监督学习 即训练直接输入数据和对应的标注&#xff0…

中国社会科学院大学与美国杜兰大学金融管理硕士——只要出发就会顺利抵达彼岸

新的地方会发生新的故事&#xff0c;新的相遇会碰撞出新的火花。只要出发&#xff0c;我们就会顺利抵达我们想去的远方。就像选择在社科院杜兰大学金融管理硕士项目读研的我们&#xff0c;在这里与来自全国各地的精英同学相聚&#xff0c;共享行业前沿资讯&#xff0c;聆听名师…

智能算法系列之基于粒子群优化的模拟退火算法

文章目录 前言1. 算法结合思路2. 问题场景2.1 Sphere2.2 Himmelblau2.3 Ackley2.4 函数可视化 3. 算法实现代码仓库&#xff1a;IALib[GitHub] 前言 本篇是智能算法(Python复现)专栏的第四篇文章&#xff0c;主要介绍粒子群优化算法与模拟退火算法的结合&#xff0c;以弥补各自…