`
cunzhangok
  • 浏览: 66318 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

Java面试题:判断一个数字是否为2的阶次方数

阅读更多

8,64,256都是2的阶次方数(例8是2的3次方),用java编写程序,用两种方法来判断一个整数是不是2的阶次方数,并说明哪个方法更好。 

查看复制到剪切板打印
return n==0 ? false : (n-1)&n==0;  

 return n==0 ? false : (n-1)&n==0;

先说3元运算符A?B:C的意思是看A是否为真,如果为真,就执行B;否则执行C。 

0不是2的阶次数,返回假;否则判断(n-1)&n==0,因为2的阶次数有一个特点:都是首位为1,其他位是0. 

所以如果n是2的阶次数,那就有(n-1)&n==0为真,&是位与运算符,相当于位上的'而且' 

1&1=1 1&0=0 0&0=0 

否则(n-1)&n==0为假。
分享到:
评论

相关推荐

    【面向对象的程序设计c++】4 用两种方法判断一个数是不是2的阶次方数(方法二)

    // 作业题:4 用两种方法判断一个数是不是2的阶次方数 /* 方法二: 1 由2的n次方的“二进制” 只有 最高位是1 其余为0 例如(“8”的二进制为 “100”) 2 减1后 最高位为0 其余为1 (“7”的二进制为 "011") 3...

    【面向对象的程序设计c++】4 用两种方法判断一个数是不是2的阶次方数(方法一)

    作业题:4 用两种方法判断一个数是不是2的阶次方数 方法一: 该数除以2,得到商和余数,如果余数不为0,那这个数就不是2的整数次幂 否则再用商除以2,又得到商和余数,重复上面的操作,直到商为1, 当商为1,余数为0时,...

    阶次分析 demo_matlab_阶次分析

    阶次分析是信号处理领域中一个重要的概念,主要用于识别周期性信号中的频率成分,从而揭示系统或设备的动态特性。在工程应用中,阶次分析常用于机械振动分析、声学分析、发动机性能评估等场景。MATLAB作为一款强大的...

    IIR.rar_IIR数字滤波器_IIR滤波 阶次_iir_巴特沃兹 相位

    1、不同阶次模拟巴特沃兹滤波器的频率响应 2、根据模拟滤波器指标,设计低通巴特沃兹滤波器 要求通带截止频率 fp = 5kHz, 通带最大衰减 ɑp =2dB, 阻带截止频率 fs= 12kHz, 阻 带最小衰减ɑs =30dB,按照上述指标...

    matlab实现的阶次分析算法,用于变转速机械故障特征提取,可运行,包含寻找脉冲时刻,等角度时刻,数字跟踪滤波,样条差值等步骤

    本项目提供的MATLAB实现为一个名为`order.m`的脚本,它包含了进行阶次分析的多个关键步骤,如寻找脉冲时刻、等角度时刻、数字跟踪滤波以及样条差分等。下面将详细解释这些步骤及其在故障特征提取中的作用。 1. **...

    数字滤波器设计和应用.docx

    本文将从数字滤波器的设计和应用两个方面进行详细的介绍。 一、数字滤波器设计 数字滤波器设计是指根据特定的信号处理要求设计和实现数字滤波器的过程。数字滤波器设计的步骤包括: 1. 确定滤波器的类型:根据...

    COT(computed order tracking)阶次跟踪算法.zip

    例如,对于一个四冲程发动机,其曲轴每转一圈会产生两次燃烧和排气,对应的阶次就是1/2阶。通过阶次分析,我们可以发现与机器运行状态紧密关联的振动模式,这些模式可能揭示出设备的异常或损坏。 COT算法的核心在于...

    模型阶次辨识各种方法的教程

    2. **定义FPE**:对于每一个阶次 \(n\),计算 FPE 值,并选择使得 FPE 最小的阶次作为最优阶次。 #### 五、根据Hankel矩阵的秩估计模型的阶次 Hankel 矩阵是由输入输出数据构建的矩阵,其秩可以用来估计模型的阶次...

    对变转速轴承信号的阶次分析代码_matlab_变转速 故障_阶次分析 matlab

    阶次分析是故障诊断领域中一个重要的工具,它可以帮助我们识别机械系统的异常行为,特别是在旋转机械设备如轴承中,阶次分析能够揭示转速变化时的故障特征。 首先,我们要理解什么是阶次分析。阶次分析是通过对信号...

    order.rar_exampleebh_matlab 阶次_脉冲 提取_计算阶次分析_阶次分析 matlab

    3. **等角度计算**:等角度线图(Equal-Angle Diagrams)是阶次分析的一个重要工具,它能直观地展示不同阶次与频率的关系。MATLAB通过计算相位差并转换为等角度线,帮助我们识别出不同阶次的分量。 4. **傅里叶变换...

    IIR切比雪夫低通数字滤波器.doc

    IIR(Infinite Impulse Response)数字滤波器是一种常用的数字信号处理技术,广泛应用于现代通信系统、信号处理、控制系统等领域。下面将对IIR切比雪夫低通数字滤波器进行详细的介绍和分析。 IIR数字滤波器的概念 ...

    模型阶次辨识

    模型阶次辨识是系统辨识领域中的一项基础工作,主要目的是确定一个动态系统的数学模型的最优或近似最优的阶次。对于一个线性系统而言,阶次通常指的是模型中参数的个数,它与系统的复杂度直接相关。选择正确的模型...

    系统辨识-系统阶次的辨识

    根据提供的标题、描述、标签及部分内容,我们可以提炼出关于“系统辨识—系统阶次的辨识”的相关知识点。下面将详细阐述这些知识点。 ### 一、系统辨识概述 系统辨识是一种从输入输出数据中估计系统模型参数的方法...

    按阶次递推用F检验法判断模型阶次的算法.doc

    - **执行F检验**:基于残差序列,利用F检验评估模型阶次是否需要进一步提高。 #### 5. **编程实现** - 使用C语言编程实现上述算法。 - 程序中包含了矩阵运算相关的子程序,例如矩阵相乘和矩阵求逆等。 - 程序会...

    12_变转速_变转速故障_脉冲转速_阶次分析_阶次跟踪_

    **阶次分析**是故障诊断中的一个重要工具,它基于设备的机械结构,将转子的振动信号分解为不同频率成分(即阶次),每个阶次与特定的机械部件或运动相关。通过分析这些阶次的变化,可以揭示设备的潜在问题。 **阶次...

    阶次分析matlab代码

    matlab实现的阶次分析算法,用于变转速机械故障特征提取,可运行,包含寻找脉冲时刻,等角度时刻,数字跟踪滤波,样条差值等步骤

    几个算法、技巧等等等等等

    在文档"判断一个数字是否为2的阶次方数.doc"中,可能会讲解到具体的位运算技巧,如使用位移操作符(和>>)和位与操作符(&),以及相应的优化算法。 在实际应用中,掌握这些基础知识和技巧能够显著提高我们的编程...

    labview阶次分析

    - **阶次跟踪(Order Tracking)**:阶次跟踪是阶次分析中的一个关键步骤,它涉及将振动信号与旋转参考信号同步。这样可以确保即使在转速变化的情况下,阶次也能够准确表示振动信号的特性。 - **阶次滤波(Order ...

    系统辨识级模型阶次辨识

    系统辨识是控制理论与应用中的一个重要领域,它主要研究如何通过实验数据来建立系统模型。在"系统辨识级模型阶次辨识"这个主题中,我们将深入探讨如何确定模型的阶次,这是构建精确系统模型的关键步骤之一。阶次决定...

    递推最小二乘法(RLS)及模型阶次辨识(F-Test)

    具体而言,如果添加一个额外的阶次(如滞后项)显著改善了模型的预测性能,那么F-Test的统计量将倾向于拒绝原假设(即模型阶次足够),反之则接受原假设。F-Test的显著性水平通常设置为0.05,意味着如果P值小于0.05...

Global site tag (gtag.js) - Google Analytics