首页 > 试题广场 >

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

[编程题]求int型正整数在内存中存储时1的个数
  • 热度指数:413634 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给定的 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
a=int(input())
b=1
if a==0:
    print(0)
while a:
    if a==1:
        break
    if a%2==0:
        a=a/2
    else:
        a=a-1
        b+=1
print(b)
发表于 2024-12-07 15:55:22 回复(0)
#取二进制,转字符串,最大的问题在于for循环出来的变量是字符串格式,所以不能用i = 1,要用i = '1'
num = int(input())
num = str(bin(num))
num_1 = 0
for i in num:
    if i == '1':
        num_1 += 1
    else:
        continue
print(num_1)
编辑于 2023-12-17 22:50:26 回复(0)
print((bin(int(input())).count('1')))

发表于 2023-06-24 09:43:29 回复(0)
n = int(input())
count = 0
for i in range(32):
    if n & (1<<i) != 0:
        count += 1
print(count)

发表于 2022-09-14 10:42:14 回复(0)
s=int(input())
a=bin(s)
print(a.count("1"))
发表于 2022-09-13 17:51:58 回复(0)
res = format(int(input()),'b')
print(res.count('1'))
发表于 2022-08-30 03:14:36 回复(0)
print(bin(int(input())).count('1'))

发表于 2022-08-29 13:54:04 回复(0)
num=int(input())
er=bin(num)
print(er.count('1'))
发表于 2022-08-27 22:09:35 回复(0)
a = int(input())
b = bin(a)
c = b.count('1')
print(c)

发表于 2022-08-24 15:43:32 回复(0)
n = int(input())
count = 0
while n != 0:
    n = n & (n-1)
    count += 1
print(count)
发表于 2022-08-04 16:45:56 回复(0)
#设计二进制计算器
num=eval(input())    #以字符串形式存储  
list1=[]
while num != 0:
    list1.append(str(num%2)) 
    num=num//2
# print(list1)
print(list1.count('1'))

发表于 2022-07-30 23:07:08 回复(0)
num = bin(int(input()))
count = 0
for i in num:
    if i=='1':
        count+=1
print(count)

发表于 2022-07-30 22:36:57 回复(0)
ip = int(input())
ipb = str(bin(ip))
print(ipb.count('1'))
发表于 2022-07-28 19:10:42 回复(0)
print(bin(int(input())).count(str(1)))
发表于 2022-07-27 18:22:14 回复(0)
a = int(input())
s = []
while a >=1:
    b = a%2
    s.append(b)
    a = a //2
j = 0
for i in s:
    if i == 1:
        j = j+1
print(j) 
发表于 2022-07-19 21:19:36 回复(0)
n = int(input())
num_1 = 0
while n :
    if n%2:
        num_1 += 1
    n = n // 2
print(num_1)

发表于 2022-07-19 18:49:07 回复(0)
python3 bin oct int hex
while True:
    try:
        numbers = int(input())
        numbers = bin(numbers)
        numbers = numbers[2:]
        output = 0
        for number in numbers:
            if int(number) == 1:
                output += 1
        print(output)
    except:
        break


发表于 2022-07-12 22:58:00 回复(0)
n = bin(int(input()))
print(n.count('1'))

发表于 2022-07-12 16:38:44 回复(0)
s = int(input())
k = 0
while s:
        if s & 1 == 1:
                k += 1
                s >>=1
print(k)
发表于 2022-07-12 11:34:51 回复(1)