9.5位操作(四)——解释代码(n&(n-1))==0的具体含义

题目:解释代码(n&(n-1))==0的具体含义

1)(A&B)==0的含义

A和B的二进制表示的同一位置绝不会同为1。

2)n和n-1

若n的最低有效位为1,减去1后为0,其余为均相同,不符合要求。n的最低有效位为0,减去1时,必须向高位借1。

3)(n&(n-1))==0的含义

n的最高有效位为1,其余位为0。因此,n的值是2的某次方。

所以,(n&(n-1))==0检查n是否为2的某次方(或者检查n是否为0

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-10 16:49:15

9.5位操作(四)——解释代码(n&(n-1))==0的具体含义的相关文章

JAVA学习-第四个代码模型

第四个代码模型:接口应用 在现实生活之中经常会遇见如下的几种情况: · 在一片森林之中有多种树木: · 在商场之中有多种商品: · 在一个停车场里停放着多种车辆,例如:卡车.轿车.摩托车.自行车. 下面模拟以上的一个场景.现在有间超市,在超市之中提供有多种商品,现在要求实现商品的上架销售和下架的功能,同时可以根据关键字查询出商品的信息.本程序只要求描述出类的结构即可. 范例:定义商品标准 interface Goods {         // 商品 public String getName(

实验四 恶意代码技术

学   号 201421430025   中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告   实验四 恶意代码技术     学生姓名 刘家亨 年级 2014级 区队 三区队 指导教师 高见     信息技术与网络安全学院 2016年11月7日   实验任务总纲 2016-2017 学年 第 一 学期 一.实验目的 1.通过对木马的练习,使读者理解和掌握木马传播和运行的机制:通过手动删除木马,掌握检查木马和删除木马的技

解释代码((n & (n-1))== 0)的含义

思路:初步查看很难一眼分析出表达式是什么含义,我们不妨举例分析一下,假设 n = 5,二进制表示为101,那么 n-1 = 4,二进制表示为100, 5 & 4 = 101 & 100 = 100 = 4 != 0,下面我们来看更多的例子 5 & 4 = 101 & 100 = 4 6 & 5 = 110 & 101 = 4 7 & 6 = 111 & 110 = 6 8 & 7 = 1000 & 0111 = 0 我们会发现

编写高质量的iOS代码--Effective Objective-C 2.0 读书笔记

编写高质量的iOS代码--Effective Objective-C 2.0 读书笔记 这本书年初刷完,感觉不错,介绍了很多小点,都是平日不怎么关注的. 第1章 熟悉Objective-C 这章没什么好介绍 第1条:了解Objective-C语言的起源 第2条:在类的头文件中尽量少引入其他头文件 第3条:多用字面量语法,少用与之等价的方法 第4条:多用类型常量,少用#define预处理指令 要理解为啥要少用#define预处理指令. 然后具体用哪个, 自己定吧 第5条:用枚举表示状态.选项.状态

专心10年,写ASP.NET代码开始,从0到拥有5系

工作到现在,几乎就没离开过这里,写这篇文章也是给自己这10年做个总结,也希望能给选择了程序员这个职业的朋友,带来一些激励与感悟,写这文章又不想影响到自己的工作与生活,所以专门注册了一个马甲帐号请谅解,我也是园子的常客,有写过很多博文. 起点高低不会左右你的人生在这个职业里.我的同事与朋友里,好像我的起点还真是挺低的,高中辍学,妈妈看了我这样白上了10年学,到工地打工浪费了,拿出了家里仅有的5000元报了一个职业学校,学了一年的计算机技术,PHOTOSHOP,网页制作三剑客,还有后来ASP语言.在

网页播放器开发(四)代码精炼提纯

四.精简提炼 我们的播放器基本实现了,但是代码复用不高,所以我们要进行封装,以插件的形式体现. 1.插件的基本运行代码如下:  ;(function(undefined){ 'use strict'; ... ... })() 上述代码就是基本的插件代码,下面详细记录这段代码所表示的意思. 前面的分号,可以解决插件与其它js合并时,别的代码可能会产生的错误问题: “(function(){})()”这个结构表示立即执行第一个括号内的函数,其实立即执行函数还有另一种写法,“(function(){

不知不觉我已经写了四年代码,贴一下四年前的代码,表喷哈

这是四年前我在校创新中心写的代码(见下图,红框中一个Java类文件最后编辑时间为 2012/4/28 21:24). 记得这是一个SE构建的学生信息管理系统,其中登陆模块的部分代码,我摘录如下,现在看来漏洞百出,哈哈,表喷啊,这也是我的过去: package com.global.xxl.studentinfo.control; import java.awt.event.*; import com.global.xxl.studentinfo.db.DbLogin; import com.gl

java中的四种代码块

一.普通代码块 直接在一个方法中出现的{}就称为普通代码块,例子程序如下: public class CodeDemo01{ public static void main(String[] args){ //普通代码块 { int x = 10; System.out.println("x=" + x); } int x = 100; System.out.println("x=" + x); } } 二.构造代码块 直接在类中定义的没有加static关键字的代码

css学习の第一四弹—代码格式简写归纳

一.代码简写方式归纳 >>1.盒模型代码简写: 外边距(margin).内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左 1.如果top.right.bottom.left的值相同,如下面代码: margin:10px 10px 10px 10px; 可缩写为: margin:10px; 2.如果top和bottom值相同.left和 right的值相同,如下面代码: margin:10px 20px 10px 20px; 可缩写为: m