Вивчаючи двійкову систему числення, Василько вирішив попрактикуватися, і придумав таку вправу. Він із бітів числа створював найбільше і найменше число, переставляючи біти, після чого знаходив їх різницю. Проте хлопець не знає, чи правильно виконує вправу. Допоможіть йому. Напишіть програму, яка за даним числом N знаходить різницю між найбільшим і найменшим числом, які утворюються із бітів заданого числа.
Пояснення. \(N = 13_{10}\) , в двійковій системі числення - \(1101_2\) , найбільше число \(1110_2 = 14_{10}\) , найменше число \(0111_2 = 7_{10}\). 14-7 =7.
Формат вхідних даних
Вхідний потік містить ціле число \(N\) \((0 \le N < 2^{31})\).
Формат вихідних даних
Вивести одне число - відповідь до вправи Василька.
Приклад вхідних даних
13
Приклад вихідних даних
7
Коментарі
Взагалі нічого не поняв з цими кодуваннями!!!!!!!!!!!!!!!!!!!!!!!!!