首页 > 试题广场 >

求int型正整数在内存中存储时1的个数

[编程题]求int型正整数在内存中存储时1的个数
  • 热度指数:406546 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给定的 \sf{int} 型的十进制正整数 n ,统计其在内存中存储时 1 的个数。换句话说,即统计其二进制表示中 1 的个数。

输入描述:
\hspace{15pt}在一行上输入一个整数 n \left( 0 \leqq n < 2^{31} \right) ,代表给定的数字。


输出描述:
\hspace{15pt}在一行上输出一个整数,代表 n 的二进制表示中 1 的个数。
示例1

输入

10

输出

2

说明

\hspace{15pt}十进制 110 的二进制表示如下:
\hspace{23pt}\bullet\,十进制 (1)_{10} 等于二进制 (1)_{2}
\hspace{23pt}\bullet\,十进制 (2)_{10} 等于二进制 (10)_{2}
\hspace{23pt}\bullet\,十进制 (3)_{10} 等于二进制 (11)_{2}
\hspace{23pt}\bullet\,十进制 (4)_{10} 等于二进制 (100)_{2}
\hspace{23pt}\bullet\,十进制 (5)_{10} 等于二进制 (101)_{2}
\hspace{23pt}\bullet\,十进制 (6)_{10} 等于二进制 (110)_{2}
\hspace{23pt}\bullet\,十进制 (7)_{10} 等于二进制 (111)_{2}
\hspace{23pt}\bullet\,十进制 (8)_{10} 等于二进制 (1000)_{2}
\hspace{23pt}\bullet\,十进制 (9)_{10} 等于二进制 (1001)_{2}
\hspace{23pt}\bullet\,十进制 (10)_{10} 等于二进制 (1010)_{2}
示例2

输入

0

输出

0
n = list(str(bin(eval(input()))))
print(n.count('1'))

发表于 2025-02-19 11:49:49 回复(0)
print(bin(int(input())).count("1"))
发表于 2025-02-16 18:07:24 回复(0)
n = int(input())
s = bin(n)
st = str(s)
print(st.count('1'))
发表于 2024-12-23 12:22:20 回复(0)
a=int(input())
b=bin(a)[2:]
sum=0 for char in b: if char=='1':
        sum=sum+1 print(sum)
发表于 2024-12-06 16:11:42 回复(0)
print(str(bin(int(input()))).count('1'))

发表于 2024-11-24 13:27:07 回复(0)
num = int(input())
list_0 = []
while num//2!=0:
    list_0.append(str(num%2))
    num = num // 2
else:
    list_0.append('1')
flag = 0
for item in list_0:
    if item == '1':
        flag+=1
print(flag)


发表于 2024-10-31 22:00:01 回复(0)
s=int(input())
t=bin(s)[2:]
print(t.count('1'))
发表于 2024-10-31 14:04:41 回复(0)
s=int(input())
n = 0
m = str(bin(s)[2:])
for i in m:
    if i == '1':
        n += 1
print(n)
发表于 2024-09-30 02:13:52 回复(0)
a=int(input())
s=bin(a).count('1')
print(s)
#输入一个十进制数,然后用count计算转换成二进制后1的个数
发表于 2024-09-17 18:25:44 回复(0)
i_ = int(input())
#'{0: b}'.format(num) 将10进制转为二进制
# .count(str1) 找出含有str1的个数
print('{0: b}'.format(i_).count('1'))
发表于 2024-06-26 13:33:26 回复(0)
print(bin(int(input())).count('1'))
发表于 2024-05-01 16:02:29 回复(0)
n = int(input())
count = 0
while n:
    if n & 1:
        count+=1
    n = n>>1
print(count)
编辑于 2024-04-18 13:40:23 回复(0)
print(str(bin(int(input()))).count('1'))
编辑于 2024-02-27 15:20:47 回复(0)
a=bin(int(input()))
print(a.count('1'))
编辑于 2024-02-21 16:16:27 回复(0)
print(str(bin(int(input()))).count('1'))
编辑于 2024-02-05 18:04:54 回复(0)
老样子 进制转换
# 转十进制 int(s,要转换的进制数) E.g. 16转10 int(s,16) 、8转10 int(s,8)
# 十进制转二进制 bin(s)
res=bin(int(input())).count('1')
print(res)

发表于 2023-12-19 17:24:50 回复(0)
num= int(input())
a =sum(1 for i in str(bin(num))[2:] if i == '1')
# [2:] 为了删除0b
print(a)
编辑于 2023-12-18 03:21:09 回复(0)
n = int(input())
n = bin(n).count('1')
print(n)

发表于 2023-10-09 10:50:14 回复(0)
print(bin(int(input())).count('1'))

发表于 2023-09-26 09:55:24 回复(0)
num_decimal = int(input())
num_binary = bin(num_decimal)[2:]
print(num_binary.count('1'))

发表于 2023-09-16 16:11:35 回复(0)

问题信息

难度:
57条回答 100473浏览

热门推荐

通过挑战的用户

查看代码
求int型正整数在内存中存储时1的个数