博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【LintCode 简单】181. 将整数A转换为B
阅读量:4087 次
发布时间:2019-05-25

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

1.问题描述:

如果要将整数A转换为B,需要改变多少个bit位?

 

2.样例:

如把31转换为14,需要改变2个bit位。

(31)10=(11111)2

(14)10=(01110)2

 
3.代码:
 
本题核心思路是利用,将整数通过移位并与1进行与操作,即可判断当时末尾是否为1。
class Solution:    """    @param: a: An integer    @param: b: An integer    @return: An integer    """    def bitSwapRequired(self, a, b):        # write your code here        a=a^b        count=0        for i in range(32):            if a&1:                count+=1            a=a>>1        return count

补充位运算的内容:

&:按位与操作,只有 1 &1 为1,其他情况为0。可用于进位运算。

|:按位或操作,只有 0|0为0,其他情况为1。

~:逐位取反。

^:异或,相同为0,相异为1。可用于加操作(不包括进位项)。

<<:左移操作,2的幂相关

>>:右移操作,2的幂相关

 

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

你可能感兴趣的文章
Spark源码剖析 - SparkContext的初始化(七)_TaskScheduler的启动
查看>>
Spark源码剖析 - SparkContext的初始化(五)_创建任务调度器TaskScheduler
查看>>
MongoDB 3.6.9 集群搭建 - 切片+副本集
查看>>
HBase读写的几种方式(三)flink篇
查看>>
HBase读写的几种方式(一)java篇
查看>>
MongoDB实战性能优化
查看>>
Kafka实战分析(一)- 设计、部署规划及其调优
查看>>
HBase LSM树存储引擎详解
查看>>
Spark源码剖析 - SparkContext的初始化(九)_启动测量系统MetricsSystem
查看>>
Java虚拟机—垃圾收集器(整理版)
查看>>
Java虚拟机—Java8内存模型(整理版)
查看>>
CDH6.2离线安装(整理版)
查看>>
Java—网络编程总结(整理版)
查看>>
Java调用第三方http接口的方式
查看>>
Mongodb设置用户权限(整理版)
查看>>
Spark源码剖析 - SparkContext的初始化(六)_创建和启动DAGScheduler
查看>>
flume1.8 基础架构介绍(一)
查看>>
HBase单机和集群版部署
查看>>
Kafka安装部署
查看>>
Flink 核心技术浅析(整理版)
查看>>