Java Program to Check if K-th Bit is Set or Not2025年5月8日 | 阅读 4 分钟 在计算机编程中,数字通常用二进制表示,其中每个位(数字)可以是 0 或 1。一个数字的 k-th 位对应于位置 k 的位,最右边的位(最低有效位)被计为位置 0。 要确定 **k-th 位** 是 **已设置**(1)还是 **未设置**(0),我们使用位运算。这些运算使我们能够有效地检查和操作数字的各个位。 问题陈述给定一个数字 **(n)** 和一个位号 **(k)。** 我们需要检查数字 **n** 的 **kth** 索引位是否已设置。位的顺序应从 LSB 侧开始索引 0,直到二进制表示中的数字。 已设置:如果位是 1 未设置:如果它是 0 让我们通过一个例子来理解。 K-th 位是否已设置的示例示例 1 输入: n=7, k=2 输出:已设置 说明: 7 在 二进制 中表示为 111。位置 2(从 0 开始计数)的位是 1,表示 **已设置。** 示例 2 输入>: n=4, k=0 输出>:未设置 说明>: 4 在二进制中表示为 100。从 LSB 开始计数的位置 0 的位是 0,因此它是 **未设置。** 方法:使用左移运算此方法利用左移运算符(<<)生成一个 k-th 位已设置的掩码。然后,在数字和掩码之间执行按位 AND 运算(&),以确定 k-th 位是否已设置。 算法步骤 1:将 1 左移 k 位以创建 k-th 位的掩码。 步骤 2:对数字 n 和创建的掩码执行按位 AND 运算。 步骤 3:如果结果不为零,则表示 k-th 位已激活为 1。 步骤 4:如果结果为零,则表示 k-th 位未设置为 1。 步骤 5:如果 k-th 位已激活,则打印“已设置”;否则,打印“未设置”。 让我们在一个 Java 程序中实现上述算法。 输出 The 3-th bit is SET. 时间复杂度:上述代码的时间复杂度为 **O(1)。** 辅助空间复杂度:上述代码的辅助空间复杂度为 **O(1)。** 方法:使用右移运算符此 方法 使用右移运算符(>>)将 k-th 位移到最低有效位。然后,检查最低有效位以查看 k-th 位是否已设置。 算法步骤 1:使用 n >> k 将数字 n 右移 k 位。 步骤 2:结果的最低有效位(LSB)将是 n 的 k-th 位。 步骤 3:如果 n >> k 的结果是奇数,则 k-th 位已设置;否则,则未设置。 步骤 4:如果最低有效位是 1,则打印“已设置”,否则打印“未设置”。 让我们在 Java 程序中实现上述算法。 文件名:CheckKthBit.java 输出 The 3-th bit is SET. 时间复杂度:上述代码的时间复杂度为 **O(1)。** 辅助空间复杂度:上述代码的辅助空间复杂度为 **O(1)。** 下一个主题Java 中的起伏数 |
? Null Pointer Exception 是一种运行时异常,当 Java 程序尝试使用包含 null 值的对象引用时抛出。在以下情况下可以抛出 Null Pointer Exception:1. 使用对象调用方法...
阅读 4 分钟
java.nio.FloatBuffer 类的 has slice() 函数。使用 FloatBuffer 类,可以创建一个共享给定缓冲区内容子序列的新 float 缓冲区。此缓冲区的当前位置将用作内容的起点...
阅读 2 分钟
java.time.format.DecimalStyle 类具有 getNegativeSign() 方法。对于此 DecimalStyle 的 Locale,使用 Java 的 DecimalStyle 类获取表示负号的字符。当该区域性具有负号时,此方法返回该字符。语法:public char getNegativeSign() 参数:不接受任何参数...
阅读 2 分钟
在不断发展的编程语言格局中,Java 通过拥抱现代编程范式并保留其核心原则,始终保持着相关性。其中一项演变是 Java 10 中引入的 var 关键字。这项创新功能在开发者中引发了兴奋和辩论...
阅读 3 分钟
在当今世界,尤其是在银行业,同时处理多笔交易是不可避免的。此类操作可能包括从简单的存款和取款功能到账户之间的转账。这不仅需要交易的准确性和效率,还需要一个...
阅读 13 分钟
相同的链表是指两个链表的数据相同且顺序一致。要在 Java 中确定两个链表是否相似,我们会迭代或递归地比较相应的节点。这包括检查数据和结构,直到所有节点匹配或...
阅读 8 分钟
Tetris 游戏是有史以来最常见的计算机游戏之一。如今,我们也可以在手机上玩这个游戏。该游戏由 Alexey Pajitnov 于 1985 年设计和创建。他是一位俄罗斯程序员。有许多不同的变体...
11 分钟阅读
在本节中,我们将学习什么是技术数以及如何通过 Java 程序找到技术数。技术数 如果一个数字有偶数位,并且可以精确地分割成...,则该数字称为技术数。
阅读 3 分钟
在面向对象编程中,封装是一个基本概念,它指的是隐藏对象的实现细节并提供访问其属性和行为的接口。访问器和修改器方法是与 Java 中的封装相关的两个重要概念。访问器访问器方法,也称为...
阅读 4 分钟
(JFR) 是一个强大的性能监控和分析工具。它可以在出现灾难性故障时持续诊断、收集和监控正在运行的 Java 应用程序。它已集成到 JVM 中。该工具为应用程序性能分析提供了强大的 GUI。它用于...
阅读 12 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India