あなたのプロンプトによると、私はバイナリ文字列に任意の数の数字を含むPythonプログラムを書き、その中に「1」の数をカウントしました。
`` python
def count_ones（x）：
  ＃xをバイナリ文字列に変換します
  binary = bin（x）[2：]
  バイナリ文字列の＃1
  One = 0
  バイナリの少しの場合：
    bit == "1"の場合：
      1つ += 1
  ＃結果を返します
  ものを返します

＃出力の例
print（count_ones（10））＃出力2
print（count_ones（15））＃出力4
`` `
ただし、数字から文字列までのオーバーヘッドが生成されるため、このプログラムは最も効率的ではない場合があります。

別の方法は、元の数を継続的に変更したプロセスで、残りの残りの数が元の質問に対する答えを得ることができるということです。
`` python
def count_ones（n）：
  ＃Nが負の場合は、最初に絶対値を取得します
  n = abs（n）
  ＃カウンター0を初期化します
  count = 0
  ＃nが0でない場合、サイクルが実行されます
  while n> 0：
    ＃nの最小値が1の場合、カウンタープラス1
    n＆1 == 1の場合：
      count += 1
    ＃最低位置を削除するためにnにnを1ビットにたわごと
    n = n >> 1
  ＃カウンターの値を返します
  返品数

＃测试测试
print（count_ones（5））＃出力2、5のバイナリは101であるため
print（count_ones（-7））＃出力3、-7のバイナリは1111111111111111111111111111001（表記）
`` `
根据您的提示，我写了一个先将任意一个数转化为二进制字符串，再数出其中的`1`的个数的Python程序：
```python
def count_ones(x):
  # 将x转化为二进制字符串
  binary = bin(x)[2:]
  # 数出二进制字符串当中1的个数
  ones = 0
  for bit in binary:
    if bit == "1":
      ones += 1
  # 返回结果
  return ones

# 输入输出例
print(count_ones(10)) # 输出2
print(count_ones(15)) # 输出4
```
不过这个程序可能不是最高效的，因为里面产生了从数字转换到字符串的开销。

另一种办法是，在对原先的数不断模二取余的过程中，数出余数`1`的数量，即可得到原问题的答案：
```python
def count_ones(n):
  # 如果n是负数，先取绝对值
  n = abs(n)
  # 初始化计数器为0
  count = 0
  # 当n不为0时，循环执行
  while n > 0:
    # 如果n的最低位是1，计数器加1
    if n & 1 == 1:
      count += 1
    # 将n右移一位，去掉最低位
    n = n >> 1
  # 返回计数器的值
  return count

# 测试代码
print(count_ones(5)) # 输出2，因为5的二进制是101
print(count_ones(-7)) # 输出3，因为-7的二进制是11111111111111111111111111111001（补码表示）
```