华为机试题:HJ15 求int型正整数在内存中存储时1的个数(python)
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
文章目录
描述输入一个 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()获取控制台任意形式的输入。输出均为字符串类型。
备注输入可以是任意形式不限制数据类型。
备注无论输入是什么输出都是字符串类型。
print('整型: ', input())
##########################
str1 = input()
print('任意形式: ', str1)
print(type(str1))
'''
123
整型: 123
asd123!@#
任意形式: asd123!@#
<class 'str'>
'''
2、print() 打印输出。
3、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'>
'''