例一、题目描述:

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

分析:

python没有unsigned int类型

>>> print ("%x" % 0xFFFFFFFF)
ffffffff
>>> print ("%x" % -10)
-a
>>> print ("%x" % -0xFFFFFFFF)
-ffffffff

解答:

【方法一】

class Solution:
    def NumberOf1(self, n):
        # write code here
        if n==0:
            return 0
        if n<0:
            n=n&0xffffffff                  #这里把负数变成整数
        return bin(n)[2:].count("1")

【方法二】

class Solution:
    def NumberOf1(self, n):
        # write code here
        if n==0:
            return 0
        c=0
        if n<0:
            n=n&0xffffffff
        while n:
            n=n&(n-1)               #n & (n - 1)消去n最后一位的1.消了几次就是n中有几个1.
            c+=1
        return c

例二、题目描述

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

//step1:异或是查看两个数哪些二进制位只有一个为1,这些是非进位位,可以直接加、减,结果表示非进位位进行加操作后的结果

//step2:按位与是查看两个数哪些二进制位都为1,这些都是进位位,结果需左移一位,表示进位后的结果

一直到进位为0

class Solution:
    def Add(self, num1, num2):
        # write code here
        while num2:
            result = (num1 ^ num2) & 0xffffffff      
            carry = ((num1 & num2) << 1) & 0xffffffff
            num1 = result
            num2 = carry
        if num1 <= 0x7fffffff:            #通过与0x7fffffff比较得到符号位,可以判断num1是正数还是负数,正数则直接返回
            result = num1
        else:
            result = ~(num1^0xffffffff)
        return result

python二进制转换的更多相关文章

  1. python 二进制转换

    #二进制装换msg = "大家好"msg1 = msg.encode(encoding='utf-8')#转换成二进制print(msg1)msg2 = msg1.decode(' ...

  2. c#代码 天气接口 一分钟搞懂你的博客为什么没人看 看完python这段爬虫代码,java流泪了c#沉默了 图片二进制转换与存入数据库相关 C#7.0--引用返回值和引用局部变量 JS直接调用C#后台方法(ajax调用) Linq To Json SqlServer 递归查询

    天气预报的程序.程序并不难. 看到这个需求第一个想法就是只要找到合适天气预报接口一切都是小意思,说干就干,立马跟学生沟通价格. ​ ​不过谈报价的过程中,差点没让我一口老血喷键盘上,话说我们程序猿的人 ...

  3. 解决vmware“二进制转换和长模式与此平台兼容.....”问题

    问题描述: 启动vmware显现:1.二进制转换和长模式与此平台兼容....字等.: 2.vmware启动一会,系统直接重新启动,这个现象出如今惠普电脑上 问题原因: 出现这种原因一般都是因为系统Vi ...

  4. python如何转换word格式、读取word内容、转成html

    # python如何转换word格式.读取word内容.转成html? import docx from win32com import client as wc # 首先将doc转换成docx wo ...

  5. 使用py2exe将python脚本转换成exe可执行文件

    Python(wiki en  chs)是一门弱类型解释型脚本语言,拥有动态类型系统和垃圾回收功能,支持多种编程范式:面向对象.命令式.函数式和过程式编程. 由于Python拥有一个巨大而广泛的标准库 ...

  6. python 字节转换成图像

    python 字节转换成图像 使用base64 1.图片转成字节使用:  base64.b64encode() 2.字节转成图片: base64.b64decode() 图片字节串: iVBORw0K ...

  7. bitset,2018蓝桥杯-明码(二进制转换)

    bitset可以存储二进制数位 bitset<8> x(2); cout<<x<<endl; //输出:00000010 #include <iostream ...

  8. numpy二进制转换和范围缩放

    numpy二进制转换和范围缩放 觉得有用的话,欢迎一起讨论相互学习~Follow Me 一维二进制转换 import numpy as np # 一维二进制数组转换 a=np.array([0,1,1 ...

  9. Java基础数据类型二进制转换

    前言: 本文主要介绍java基础类型的二进制转换和二进制的基本概念. 二进制: 1,二进制是以0和1为码,逢2进1,比如3=11=1*2+1. 2,在计算机当中其它进制的算法基本基于2进制,因为计算机 ...

随机推荐

  1. 写了一个hiero中添加自定义Token的脚本

    Hiero自带Token往往不够用,shotname中自带版本号的情况下要升级版本会很麻烦,比如Shot_0001_v001这样一个序列名,要升级为Shot_0001_v002就必须把_v001之前的 ...

  2. php函数总结2

    1.匿名参数 func_get_args //获取参数列表的数组 func_get_arg(num) //数组索引 func_num_args() //获取匿名函数的个数 <?php funct ...

  3. Android Studio 增加函数注释模板

    此篇文章主要介绍如何在Android Studio中函数如何添加注释,使其和eclipse一样方便的添加注释 Android Studio默认函数注释为 /** * */ 下面方法将要改为如下格式 / ...

  4. bzoj5017: [Snoi2017]炸弹

    Description 在一条直线上有 N 个炸弹,每个炸弹的坐标是 Xi,爆炸半径是 Ri,当一个炸弹爆炸时,如果另一个炸弹所在位置 Xj 满足:  Xi−Ri≤Xj≤Xi+Ri,那么,该炸弹也会被 ...

  5. 峰Redis学习(5)Redis 数据结构(Set的操作)

    第五节:Redis 数据结构之Set 类型 存储Set,这里的Set是无序的:  和List类型不同的是,Set集合中不允许出现重复的元素  Set可包含的最大元素数量是4294967295   存储 ...

  6. PAT 乙级 1005 继续(3n+1)猜想 (25) C++版

    1005. 继续(3n+1)猜想 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 卡拉兹(Callatz ...

  7. [转][CentOS]开机时

    来自:https://www.cnblogs.com/jcblog/p/6431252.html 在 CentOS 开机界面有两个菜单: 第一个选项正常启动,第二个选项急救模式启动(系统出项问题不能正 ...

  8. 原型设计工具——axure认识与使用

    原型设计工具——axure认识与使用 10款原型设计工具推荐 pasting

  9. docker构建tomcat镜像

    下载centos镜像 # docker pull daocloud.io/centos:7 [root@localhost ~]# docker pull daocloud.io/centos: : ...

  10. [UE4]增加机器人

    一.新增蓝图继承自Shooter名为AIShooter.玩家角色也是继承自Shooter. 二.使用AIMoveTo追踪玩家.玩家控制的角色调用这个方法没反应. 三.关卡中添加组件NavMeshBou ...