华为机试题: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'>
'''

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python