#include <bits/stdc++.h>
using namespace std;
string get_every_bit(int num) {
unsigned u = num;
string ans;
while (u != 0) {
ans += (u & 1) + '0';
u >>= 1;
}
reverse(ans.begin(), ans.end());
return ans;
}
int get_last_one(int num) {
return num & (-num);
}
int count_one(int num) {
int ans = 0;
while (num != 0) num -= get_last_one(num), ++ans;
return ans;
}
string get_every_digit(int num) {
if (num < 0) num = abs(num);
string ans;
while (num != 0) {
ans += (num % 10) + '0';
num /= 10;
}
reverse(ans.begin(), ans.end());
return ans;
}
int main() {
int num;
cin >> num;
cout << "二进制表示:" << get_every_bit(num) << endl;
cout << "每一位数字:" << get_every_digit(num) << endl;
cout << "每一位数字:" << get_last_one(num) << endl;
cout << "二进制1的次数:" << count_one(num) << endl;
return 0;
}