博客
关于我
提取一个int类型数最右侧的1
阅读量:401 次
发布时间:2019-03-05

本文共 601 字,大约阅读时间需要 2 分钟。

提取整数的最右侧1

在编程或数据处理中,有时需要提取一个整数的最右侧1。例如,对于数6,其二进制表示为0000 0110。我们需要从中提取出最右侧的1,得到0000 0010。

算法描述

要实现这一目标,可以通过以下步骤进行:首先,将原数取反,这样最右侧的1变成0,而其右侧的所有位都变成1。然后,将这个结果加1,这样最右侧的1就会被提取出来,同时右侧的1变成0。最后,将提取的1与原数进行按位与操作,得到最终结果。

算法思路

具体来说,我们可以使用以下步骤来实现:1. 对原数取反,得到全1的右侧部分。2. 将结果加1,这样最右侧的1就会被提取出来。3. 用原数与操作提取出最右侧的1。

代码实现

以下是实现该功能的Java代码:

public static void findBit1RightNumber(int number) {      int temp = ~number;      temp += 1;      temp = number & temp;      System.out.println("取出右边的1为:" + intToBinary(temp));  }  /*** 将整数转换为二进制字符串 */ public static String intToBinary(int num) { return Integer.toBinaryString(num); }

转载地址:http://yjlzz.baihongyu.com/

你可能感兴趣的文章
nova基于ubs机制扩展scheduler-filter
查看>>
Now trying to drop the old temporary tablespace, the session hangs.
查看>>
nowcoder—Beauty of Trees
查看>>
np.arange()和np.linspace()绘制logistic回归图像时得到不同的结果?
查看>>
np.power的使用
查看>>
NPM 2FA双重认证的设置方法
查看>>
npm build报错Cannot find module ‘webpack/lib/rules/BasicEffectRulePlugin‘解决方法
查看>>
npm build报错Cannot find module ‘webpack‘解决方法
查看>>
npm ERR! ERESOLVE could not resolve报错
查看>>
npm ERR! fatal: unable to connect to github.com:
查看>>
npm ERR! Unexpected end of JSON input while parsing near '...on":"0.10.3","direc to'
查看>>
npm ERR! Unexpected end of JSON input while parsing near ‘...“:“^1.2.0“,“vue-html-‘ npm ERR! A comp
查看>>
npm error Missing script: “server“npm errornpm error Did you mean this?npm error npm run serve
查看>>
npm error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,1) 安装
查看>>
npm install CERT_HAS_EXPIRED解决方法
查看>>
npm install digital envelope routines::unsupported解决方法
查看>>
npm install 卡着不动的解决方法
查看>>
npm install 报错 EEXIST File exists 的解决方法
查看>>
npm install 报错 ERR_SOCKET_TIMEOUT 的解决方法
查看>>
npm install 报错 Failed to connect to github.com port 443 的解决方法
查看>>