华为机试题:HJ15 求int型正整数在内存中存储时1的个数(python)

描述:输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。

数据范围:保证在 32 位整型数字范围内

输入描述: 输入一个整数(int类型)

输出描述: 这个数转换成2进制后,输出1的个数

示例1

输入:5
输出:2

示例2

输入:0
输出:0

Python3

print(bin(int(input())).count('1'))
         
  • input():获取控制台(任意形式)的输入。输出均为字符串类型。
  • int() :将一个字符串或数字转换为十进制整数(强转)。输入可以指定进制,默认十进制。
  • bin():返回(整型int或长整型long int)的二进制码。返回值为字符串。
  • print() :打印输出。

知识点详解

1、input():获取控制台(任意形式)的输入。输出均为字符串类型。

【Python】input()函数用法小结

备注:输入可以是任意形式,不限制数据类型。
备注:无论输入是什么,输出都是字符串类型。

print('整型: ', input())
##########################
str1 = input()
print('任意形式: ', str1)
print(type(str1))
'''
123
整型:  123
asd123!@#
任意形式:  asd123!@#
<class 'str'>
'''

2、print() :打印输出。

【Python】print()函数的用法

3、int() :将一个字符串或数字转换为十进制整数(强转)。输入可以指定进制,默认十进制。

【Python】int()用法详解

函数说明:int(x, base=10)
输入参数:

  • x:字符串或数字。
  • base:参数x为(二进制、八进制、十进制、十六进制)数,默认十进制数
    备注:若带参数base,则输入必须是整数,且整数必须以字符串的形式进行输入。如:整数12转化为16进制,int('12', base=16)
    10进制转化为16进制的算法在这里插入图片描述
输入返回值
int()整数 0
int(整数)整数
int(浮点数)浮点数的整数
int(字符串(整数))将字符串类型转换为int类型转换
int(字符串(浮点数))需先转换为float类型,再进行int转换,否则报错。
int('整数', base=16)将输入的16进制整数转换为10进制整数(同理:其余进制)
print(int())                    # 【输出结果】0
print(int(2))                   # 【输出结果】2
print(int(-2.9))                # 【输出结果】-2
print(int('-2'))                # 【输出结果】-2
print(int(float('-2.9')))       # 【输出结果】-2

print(int('20', 16))       		# 【输出结果】32
print(int('0XAA', 16))       	# 【输出结果】170

4、bin():返回(整型int或长整型long int)的二进制码。返回值为字符串。

函数说明:bin(object)
输入参数:

  • object:整型int或长整型long int

两者的区别:
(1)整形取值范围:-32768 ~ 32767
(2)长整形取值范围:-2147483648 ~ 2147483647

print(bin(-3))
print(type(bin(-3)))
'''
-0b11
<class 'str'>
'''

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖墩会武术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值