博客
关于我
提取一个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/

你可能感兴趣的文章
oracle 用户与锁
查看>>
oracle 由32位迁移到64位的问题
查看>>
oracle 监听器的工作原理
查看>>
oracle 行列转换
查看>>
oracle 行转列
查看>>
Oracle 表
查看>>
oracle 课堂笔记
查看>>
Oracle 返回结果集的 存储过程
查看>>
Oracle 递归
查看>>
Oracle 递归函数与拼接
查看>>
oracle 逻辑优化,提升高度,综合SQL上下文进行逻辑优化
查看>>
oracle 闪回关闭,关闭闪回即disable flashback的操作步骤
查看>>
oracle 限制用户并行,insert /*parallel */ 到不同用户,并行起不来的问题
查看>>
oracle--用户,权限,角色的管理
查看>>
Oracle-定时任务-JOB
查看>>
oracle.dataaccess 连接池,asp.net使用Oracle.DataAccess.dll连接Oracle
查看>>
oracle00205报错,Oracle控制文件损坏报错场景
查看>>
Oracle10g EM乱码之快速解决
查看>>
Oracle10g下载地址--多平台下的32位和64位
查看>>
Oracle10g安装了11g的ODAC后,PL/SQL连接提示TNS:无法解析指定的连接标识符
查看>>