Jump to content
lucasvitor978@gmail.com

Conversão binário/hexadecimal

Recommended Posts

lucasvitor978@gmail.com

Crie um unico projeito (main.c,funcoes.cprototipos.h) que contenha as seguintes funçoes
a) leia um numero inteiro e o trasforme em binario
b)leia um numero inteiro e o trasforme em hexadecimal
c) leia um numero binairo e o trasforme em hexadecimal

Share this post


Link to post
Share on other sites
Zamalor

15min pra entregar provavelmente ja n vou a tempo, eu acabei de fzr uma frequencia de programacao em C xD 

Para converteres inteiro para binario tens q dividir esse numero por 2 consecutivamente ate o quociente dar 0
ou seja:

...........37 |_2_

. LSB->1    18 |_2_

...................0     9  |_2_

..........................1    4  |_2_

................................0     2 |_2_

.......................................0    1 |_2_

................................MSB->  1    0

 

agr pegas os restos das divisoes desde o MSB até ao LSB

o q ficaria em binario ent -> 100101

 

Inteiro para hexadecimal:
é a msm historia so q desta vez divides por 16

..........1997 |_16_

..LSB->13    124 |_16_

......................12     7  |_16_

..................MSB->  7     0

ou seja ficaria 7 12 13 mas como hexadecimal so tem numero ate 9,  tds os numero a partir dai sao letras ou seja o numero seria representado por 7CD

 

Binario para hexadecimal:
o processo é um pouco diferente, supondo q temos o seguinte numero em binario -> 1111001111

para converter em hexadecimal poderiamos fzr do tp converter primeiro para decimal e dps para hexa ou ent podemos fzr um atalho q seria o seguinte

pegar 4 digitos do numero binario e separar, SEMPRE DA DIREITA PARA A ESQUERDA ( OBS: caso no final n sobre 4 digitos acrescentasse 0 à esquerda , por é a msm coisa q em decimal colocar o numero 10 com zeros à esquerda 0010 , este numero na base decimal n deixa de representar o valor 10)

ou seja ficariamos com algo do genero
0011 1100 1111

como o hexadecimal vai de 0 a 15 e 4 digitos em binario é possivel representar de 0 a 15 , ent cada 4 digitos vai corresponder a letra em hexadecimal ou seja:
0011 -> 3

1100-> C
1111 -> F
 

o q resultaria ent no numero 3CF
espero ter ajudado xD

 

Edited by Zamalor

Share this post


Link to post
Share on other sites
HappyHippyHippo

que complicação que ai vai ....

ler um inteiro e converter em binário:

- ler um valor inteiro (sem explicação) e ciclicamente obter o valor menos significativo da variável com shift

ler um valor inteiro e converter em hexadecimal

- ler um calor inteiro e usar o printf para o escrever em hexadecimal

ler um binário e converter em interio

- ler uma string de 0's e 1's e iterar os caracteres lidos incrementando o valor final com o uso de mascaras e shifts

 


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.