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

你可能感兴趣的文章
Objective-C实现1000 位斐波那契数算法(附完整源码)
查看>>
Objective-C实现2 个数字之间的算术几何平均值算法(附完整源码)
查看>>
Objective-C实现2d 表面渲染 3d 点算法(附完整源码)
查看>>
Objective-C实现2D变换算法(附完整源码)
查看>>
Objective-C实现3n+1猜想(附完整源码)
查看>>
Objective-C实现3n+1猜想(附完整源码)
查看>>
Objective-C实现9x9乘法表算法(附完整源码)
查看>>
Objective-C实现9×9二维数组数独算法(附完整源码)
查看>>
Objective-C实现A*(A-Star)算法(附完整源码)
查看>>
Objective-C实现A-Star算法(附完整源码)
查看>>
Objective-C实现abbreviation缩写算法(附完整源码)
查看>>
Objective-C实现ABC人工蜂群算法(附完整源码)
查看>>
Objective-C实现activity selection活动选择问题算法(附完整源码)
查看>>
Objective-C实现AC算法(Aho-Corasick) 算法(附完整源码)
查看>>
Objective-C实现adaboost算法(附完整源码)
查看>>
Objective-C实现Adler32算法(附完整源码)
查看>>
Objective-C实现AES算法(附完整源码)
查看>>
Objective-C实现AffineCipher仿射密码算法(附完整源码)
查看>>
Objective-C实现aliquot sum等分求和算法(附完整源码)
查看>>
Objective-C实现all combinations所有组合算法(附完整源码)
查看>>