Java Program to Check if a Number is Power of 22025年5月6日 | 阅读4分钟 这是像Google、Amazon、TCS、Accenture、Flipkart 等顶级 IT 公司面试中经常问到的一个问题。通过解决这个问题,人们希望检查应聘者的逻辑能力、批判性思维和解决问题的能力。因此,在本节中,我们将通过不同的方法和逻辑检查给定数字是否为 2 的幂。我们还将创建相应的 Java 程序。 问题陈述2 的幂意味着一个给定的数可以表示为 2^n 的形式,其中 n 是大于或等于 0 的整数。 这个概念在 IEEE 浮点数、2 的补码、1 的补码、符号位表示、位操作和算法化等领域至关重要。好吧,在下面的文章中,我将解释理论分析以及检查给定数字是否为 2 的幂的 Java 编程方法。 理论背景我们已经看到,2 的幂的数的属性源于它们的二进制表示。它们只能有一个位是 1,而所有其他位都是 0。在本本书的第 105 页上,这些数被描述为只有一位是 1,而其他所有位都是零的自然数。例如: 这种特性使得这类数据只有一个设置为 1 的位,以便能够高效地进行位操作。特别是,位 AND 运算提供了一种简单的方法来判断一个数是否为 2 的幂。 解决问题的方法基本思想 对于一个数 n,如果 n 是 2 的幂,那么 n 的二进制表示可以这样看。n-1 将会翻转 n 的所有位。 示例 n=4 → 二进制:0100 n−1=3 → 二进制:0011 应用位 AND:0100 & 0011 = 0000。 条件
替代方法
文件名:PowerOfTwo.java 输出 Checking if numbers are powers of 2: 1 is a power of 2: true 2 is a power of 2: true 3 is a power of 2: false 4 is a power of 2: true 8 is a power of 2: true 16 is a power of 2: true 18 is a power of 2: false 32 is a power of 2: true 64 is a power of 2: true 100 is a power of 2: false 解释在 isPowerOfTwo 方法中,有以下过程:数字必须大于 0,因为 0 或更小的数字不能是 2 的幂。如果此条件不满足,它将直接返回 false,而不会执行剩余的代码块。 其中第一个是基于典型的算术符号,即一个带有命题的等号,它是 (number & (number - 1)) == 0。在 2 的幂的表示中只有一个 1 位,当你从这样的数中减去 1 时,最右边的零将被翻转为 1。W 当数字与数字 - 1 进行位 AND 运算时,结果是 0,因此我们现在可以说这个数字是 2 的幂。 位方法优点
结论在许多计算应用中,判断一个数是否显著为 2 的幂正变得成为一个常规问题。为此,二进制表示的属性和位 AND 运算将帮助我们有效地、有风格地解决这个问题。 此处显示的方法非常易于应用,并且效率很高。了解这些基本操作对于获得所需的编码经验和全面利用系统材料至关重要。 |
在本节中,我们将学习什么是数组旋转以及如何通过 Java 程序来旋转数组。Java 数组旋转数组旋转简单地意味着将数组元素移到指定位置。我们可以旋转...
5 分钟阅读
文件在每种编程语言中都起着至关重要的作用。为了处理文件,每个开发人员都应该了解我们如何在 Java 或其他编程语言中实现文件上传功能。在本节中,我们将了解如何实现...
5 分钟阅读
在 Java 中,静态成员和非静态成员在它们如何存储、访问和在类中使用方面有所不同。Java 中的静态成员静态成员指的是类级别的变量或方法,这意味着它们属于类本身,而不是从中实例化的任何单个对象。它使得...
阅读 8 分钟
JDK 8 引入了 DoublePredicate 接口。一个名为 DoublePredicate (java.util.function.DoublePredicate) 的函数式接口在其内部指定了三个默认方法和一个抽象方法。这个接口是 Predicate 接口的一个更专业的版本。因为它只有一个抽象方法 test (double value)...
阅读 3 分钟
在编程世界中,模拟现实世界场景既有趣又有教育意义。其中一个场景是掷骰子,这是机会游戏中常见的元素。在本节中,我们将探讨如何创建一个 Java 程序来模拟掷 N 个骰子……
阅读 4 分钟
混淆的词典含义是使某事物不清晰或难以理解。在编程中,混淆器用于保护源代码免受黑客攻击。在本节中,我们将学习什么是代码混淆,混淆器的作用,混淆工具,以及它的用途。此外,我们将学习如何...
阅读 6 分钟
java.nio.DoubleBuffer 具有 duplicate() 方法。DoubleBuffer 类用于创建一个新的浮点缓冲区,该缓冲区共享给定缓冲区的 contents。缓冲区的 contents 将构成新缓冲区。新缓冲区将反映对此缓冲区 contents 所做的更改...
阅读 3 分钟
? 在 Java 中,SSL 证书可以定义为一种数字证书,它用于在服务器和使用 SSL/TLS(安全套接层/传输层安全)协议的客户端之间提供安全、加密和连接。在各个领域...
5 分钟阅读
Java 是一种计算平台,是一种面向对象的、面向类的、高级编程语言,由 Sun Microsystems 于 1995 年首次发布。从最初的卑微起点,它已经发展到通过提供一个可靠的平台来驱动当今数字世界的很大一部分,该平台可以实现许多...
阅读 3 分钟
Java SE 7 引入了对错误处理方式的重大改进,带来了使 Java 应用程序中的错误管理更简单、更高效的功能。这些更改旨在提高代码的可读性,减少重复代码(样板代码),并增强开发人员的整体体验。异常的演变...
7 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India