首页 > 编程语言 >Python练习:输入一个整数,输出该数二进制表示中1的个数。

Python练习:输入一个整数,输出该数二进制表示中1的个数。

时间:2023-08-19 16:44:23浏览次数:49  
标签:bin 10 Python 32 补码 count 二进制 __ 该数

 

 

Python3 整数对象存储为无符号数加上符号位标志,所以不存在“负数”补码形式,因此,计算 “1” 的数量需要按去符号后的无符号数:

cnt=bin(n).count('1')

另外,Python3 无长整,整数长度原则上不限,所以不能以假定的 32 位处理。

 

 

 

 

补码+原码=2**32
 1 # -*- coding:utf-8 -*-
 2 class Solution:
 3     # bin函数: bin返回一个整数的二进制字符串,以0b开头,
 4     # bin(10) '0b1010'  bin(-10)  '-0b1010'
 5     #
 6     # count函数 返回字符串当中非重叠的字符串的个数,可以传入start,end来表示对字符串切片的结果
 7     #
 8     #如果一个数为负数,那么2**32 + n 然后再用bin返回的就是它的补码形式。 补码+原码=2**32
 9     def NumberOf1(self, n):
10         if n >= 0:
11             return bin(n).count('1')
12         else:
13             return bin(2**32 + n).count('1')
14  
15 if __name__ == '__main__':
16     solution = Solution()
17     print(solution.NumberOf1(10))
18     print(solution.NumberOf1(-10))

 

标签:bin,10,Python,32,补码,count,二进制,__,该数
From: https://www.cnblogs.com/bravesunforever/p/17642657.html

相关文章

  • centos安装python3.7
    1.安装openssl11https://www.cnblogs.com/navysummer/p/17642466.html2.安装依赖yuminstallzlib-develbzip2-develncurses-develsqlite-develreadline-develtk-develgccmakelibffi-devel-y 3.安装python3.7 wgethttps://www.python.org/ftp/python/3.7.17/Pyt......
  • python+playwright 学习-72 设置window.navigator.webdriver属性为false 跳过网站反爬
    前言有些网站有反爬机制,比如用代码启动的浏览器会被检测到,需要人机验证,用脚本去点击或者滑动滑动虽然能滑动,但是会认证失败。用playwright和selenium启动的浏览器都会用个webdriver属性。浏览器会根据这个属性判断是否是人工正常操作。window.navigator.webdriver属性人......
  • Python3 - 时间处理与定时任务
    无论哪种编程语言,时间肯定都是非常重要的部分,今天来看一下python如何来处理时间和python定时任务,注意咯:本篇所讲是python3版本的实现,在python2版本中的实现略有不同,有时间会再写一篇以便大家区分。1.计算明天和昨天的日期12345678910111213#!/usr/bin/envpython#coding=utf-8#获......
  • Python中可用分号 `;` 将多行代码写在一行上
    Python中可用分号;将多行代码写在一行上━━━━━━━━━━━━━━━━━━━━━━例如:print('Hello');print('World');print('!')这将输出三行文本,分别是Hello、World和!。不过,这种写法会降低代码的可读性,不利于代码的维护和调试。因此,除非特殊情况下需要,一般不......
  • Python小项目:利用tkinter开发测手速小游戏
    1简介利用tkinter开发测手速的小游戏,大家10s内可以点击鼠标多少次呢?想测试一下吗?来试试测手速下游戏吧!仅供娱乐!试玩视频:视频链接游戏截图:2代码分模块介绍2.1导入需要的包fromtkinterimport*fromtkinter.messageboximport*2.2定义全局变量def__init__(self,......
  • python列表添加元素
    列表添加元素df_test=pd.DataFrame({'a':[1,2],'b':[3,None]})df_test.columns+'c'#每个元素拼接'c'!不能直接添加元素!['a','b']+['c']#不能每个元素拼接,也不能直接加字符串,需要列表+列表进行扩展,且append输出为None#np.array不......
  • Python通过matplotlib包和gif包生成gif动画
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • python DLL load failed while importing numpy_ops 异常
    安装https://aka.ms/vs/17/release/vc_redist.x64.exe原文章地址:ImportError:DLLloadfailedwhileimportingnumpy_ops:Thespecifiedmodulecouldnotbefound·Issue#2773·Significant-Gravitas/Auto-GPT·GitHub......
  • Python程序员Visual Studio Code指南2 Hello World
    2HelloWorld2.1安装Python扩展VisualStudioCode的Python扩展提供了对Python语言的支持,包括语法着色、代码补全、过滤、调试、代码导航和代码格式化等功能,以及JupyterNotebook支持等Python特有的功能。您可以在VisualStudioCode的扩展视图中安装Python扩展。与从扩展市......
  • 在Python中,当你调用一个类的方法时,需要将类的实例作为第一个参数传递给方法。 括号
    classClass_test:def__init__(self):pass#若无则报错AttributeError:'Class_test'objecthasnoattribute'fun_zip'deffun_zip(self,df_arg=pd.DataFrame(),bool_arg=False):#......