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

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

提取一个int类型数最右侧的1

算法描述

把一个int类型的数,提取出最右侧的1来,例如:

6 对应的二进制位 0000 0110,那么取出来的应该是0000 0010

算法思路

对原数0000 0110取反,将原数右侧1右边的0位全变成了1(1111 1001),这时候如果加1,会产生进位到原数右侧非零位,信息得以记录,再与原数与操作,即可将1提取.

图示:

代码:

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){    //1.补零    String binaryStr = Integer.toBinaryString(num);    int bitNum = 8;    if(bitNum

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

你可能感兴趣的文章
MySQL
查看>>
MySQL
查看>>
mysql
查看>>
MTK Android 如何获取系统权限
查看>>
MySQL - 4种基本索引、聚簇索引和非聚索引、索引失效情况、SQL 优化
查看>>
MySQL - ERROR 1406
查看>>
mysql - 视图
查看>>
MySQL - 解读MySQL事务与锁机制
查看>>
MTTR、MTBF、MTTF的大白话理解
查看>>
mt_rand
查看>>
mysql -存储过程
查看>>
mysql /*! 50100 ... */ 条件编译
查看>>
mudbox卸载/完美解决安装失败/如何彻底卸载清除干净mudbox各种残留注册表和文件的方法...
查看>>
mysql 1264_关于mysql 出现 1264 Out of range value for column 错误的解决办法
查看>>
mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
查看>>
mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
查看>>
MySQL 8.0 恢复孤立文件每表ibd文件
查看>>
MySQL 8.0开始Group by不再排序
查看>>
mysql ansi nulls_SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思
查看>>
multi swiper bug solution
查看>>