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

你可能感兴趣的文章
Netty工作笔记0006---NIO的Buffer说明
查看>>
Netty工作笔记0007---NIO的三大核心组件关系
查看>>
Netty工作笔记0008---NIO的Buffer的机制及子类
查看>>
Netty工作笔记0009---Channel基本介绍
查看>>
Netty工作笔记0011---Channel应用案例2
查看>>
Netty工作笔记0013---Channel应用案例4Copy图片
查看>>
Netty工作笔记0014---Buffer类型化和只读
查看>>
Netty工作笔记0015---MappedByteBuffer使用
查看>>
Netty工作笔记0020---Selectionkey在NIO体系
查看>>
Netty工作笔记0022---NIO快速入门--编写客户端
查看>>
Vue踩坑笔记 - 关于vue静态资源引入的问题
查看>>
Netty工作笔记0024---SelectionKey API
查看>>
Netty工作笔记0025---SocketChannel API
查看>>
Netty工作笔记0027---NIO 网络编程应用--群聊系统2--服务器编写2
查看>>
Netty工作笔记0028---NIO 网络编程应用--群聊系统3--客户端编写1
查看>>
Netty工作笔记0030---NIO与零拷贝原理剖析
查看>>
Netty工作笔记0034---Netty架构设计--线程模型
查看>>
Netty工作笔记0050---Netty核心模块1
查看>>
Netty工作笔记0057---Netty群聊系统服务端
查看>>
Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接
查看>>