Ir ao conteúdo
  • Cadastre-se

Ajuda em C


Andrey Felipe

Posts recomendados

Passar um numero pra extenso:

1 - Divide o número em casas decimais

2 - Depois use alguma estrutura de repetição que recebe as casas decimais e imprime de acordo.

Pra dividir o número em casas decimais:

numero = 1234;

((numero % 10000) - (numero % 1000)) / 1000 = 1

((numero % 1000) - (numero % 100)) / 100 = 2

((numero % 100) - (numero % 10)) / 10 = 3

((numero % 10) - (numero % 1)) / 1 = 4

Passar um numero de decimal pra binario:

1 - Divide ele por 2 sucessivamente até o resto ser 0 ou 1.

2 - A cada divisão, você adiciona o resto num array que vai representar o numero em binário (precisa adicionar no array da direita pra esquerda)

numero = 1234;

1234 % 2 = [0]

numero = 1234 / 2;

617 % 2 = [1]

numero = 617 / 2;

308 % 2 = [0]

numero = 308 / 2;

154 % 2 = [0]

numero = 154 / 2;

77 % 2 = [1]

numero = 77 / 2;

38 % 2 = [0]

numero = 38 / 2;

19 % 2 = [1]

numero = 19 / 2;

9 % 2 = [1]

numero = 9 / 2;

4 % 2 = [0]

numero = 4 / 2;

2 % 2 = [0]

numero = 2 / 2;

[1]

[0100 1101 0010]

Passar o número de decimal pra hexa e octal:

1 - Considerando que você já converteu eles pra binário, essa parte é a mais fácil.

Pra hexadecimal, basta percorrer o teu array, dividir os bits em grupos de 4, e converter eles de volta pra decimal.

numero = 1234;

binario[] = { 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0 };

Usando os 4 ultimos números, da direita pra esquerda:

2^0 x binario[11] = 0

+ 2^1 x binario[10] = 2

+ 2^2 x binario[9] = 0

+ 2^3 x binario[8] = 0

O resultado dá 2. Em hexa 2 é [2] mesmo.

Os próximos 4 números:

2^0 x binario[7] = 1

+ 2^1 x binario[6] = 0

+ 2^2 x binario[5] = 4

+ 2^3 x binario[4] = 8

O resultado dá 13. Em hexa é [D].

Os próximos 4 números:

2^0 x binario[3] = 0

+ 2^1 x binario[2] = 0

+ 2^2 x binario[1] = 4

+ 2^3 x binario[0] = 0

O resultado é 4. Em hexa é [4] mesmo.

Juntando tudo: [4D2], que é o mesmo que 1234 em hexa.

Pra octal é a mesma lógica, mas em vez de separar os bits em grupos de 4, separa em grupos de 3.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Passar um numero pra extenso:

1 - Divide o número em casas decimais

2 - Depois use alguma estrutura de repetição que recebe as casas decimais e imprime de acordo.

Pra dividir o número em casas decimais:

numero = 1234;

((numero % 10000) - (numero % 1000)) / 1000 = 1

((numero % 1000) - (numero % 100)) / 100 = 2

((numero % 100) - (numero % 10)) / 10 = 3

((numero % 10) - (numero % 1)) / 1 = 4

Passar um numero de decimal pra binario:

1 - Divide ele por 2 sucessivamente até o resto ser 0 ou 1.

2 - A cada divisão, você adiciona o resto num array que vai representar o numero em binário (precisa adicionar no array da direita pra esquerda)

numero = 1234;

1234 % 2 = [0]

numero = 1234 / 2;

617 % 2 = [1]

numero = 617 / 2;

308 % 2 = [0]

numero = 308 / 2;

154 % 2 = [0]

numero = 154 / 2;

77 % 2 = [1]

numero = 77 / 2;

38 % 2 = [0]

numero = 38 / 2;

19 % 2 = [1]

numero = 19 / 2;

9 % 2 = [1]

numero = 9 / 2;

4 % 2 = [0]

numero = 4 / 2;

2 % 2 = [0]

numero = 2 / 2;

[1]

[0100 1101 0010]

Passar o número de decimal pra hexa e octal:

1 - Considerando que você já converteu eles pra binário, essa parte é a mais fácil.

Pra hexadecimal, basta percorrer o teu array, dividir os bits em grupos de 4, e converter eles de volta pra decimal.

numero = 1234;

binario[] = { 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0 };

Usando os 4 ultimos números, da direita pra esquerda:

2^0 x binario[11] = 0

+ 2^1 x binario[10] = 2

+ 2^2 x binario[9] = 0

+ 2^3 x binario[8] = 0

O resultado dá 2. Em hexa 2 é [2] mesmo.

Os próximos 4 números:

2^0 x binario[7] = 1

+ 2^1 x binario[6] = 0

+ 2^2 x binario[5] = 4

+ 2^3 x binario[4] = 8

O resultado dá 13. Em hexa é [D].

Os próximos 4 números:

2^0 x binario[3] = 0

+ 2^1 x binario[2] = 0

+ 2^2 x binario[1] = 4

+ 2^3 x binario[0] = 0

O resultado é 4. Em hexa é [4] mesmo.

Juntando tudo: [4D2], que é o mesmo que 1234 em hexa.

Pra octal é a mesma lógica, mas em vez de separar os bits em grupos de 4, separa em grupos de 3.

Obrigado pela ajuda amigo xD

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!