Boa tarde, sou iniciante em programação e estou com dificuldades na resolução dessa questão. Ela é um pouco extensa, mas se alguém puder ajudar eu agradeço muito.
Questão 9. Uma maneira simples de se converter um número inteiro para sua forma binária é utilizar subtrações sucessivas. Para tanto, subtrai-se do número a maior potência 2^p que se pode subtrair do mesmo. número em questão quando em forma binária possuirá um bit 1 na posição p. O processo é então aplicado sucessivamente ao resto da subtração anterior até que o resto se torne zero. As posições p das potências 2^p que foram subtraídas nesse processo serão os bits 1 do número e todas as demais serão zero. Além disso, qualquer potência 2p maior que o número também será um zero. Assim, se 89 for um inteiro de 8 bits teremos também que a posição 7 será 0, pois 2^7 > 89 e teremos 89 - 2^6 = 25, 25 - 2^4 = 9, 9 - 2^3 = 1 e 1 - 2^0 = 1, de modo que os bits das posições 0, 3, 4, e 6 serão 1 e os bits das posições 1, 2, 5 e 7 serão 0. Logo, temos que 8910 = 010110012.
Escreva um programa em C++ que leia um inteiro de 16 bits e o imprima em formato binário usando o método descrito acima. Observe que a maior potência de 2 presente em um número de 16 bits é 2^15. Você precisará utilizar a estrutura condicional if...else neste programa. O programa pode ser escrito de forma curta usando a estrutura de repetição for( ; ; ).