23 de ago. de 2012

Complemento de 2 em Hexadecimal em C

Para converter um número em decimal para seu complemento de dois, conforme usado no post anterior, utilizei o seguinte programa em C:

int inteiro=236;
unsigned char buf[20];
sprintf(buf,"%X",0xFFFFF-inteiro+1);   

printf("%c%c",buf[3],buf[4]);
       
>> 14

Descrevendo as operações realizadas:
sprintf - retorna um inteiro com o númeor de caracteres (informação inútil para mim neste programa) e faz a string do primeiro argumento (buf) receber, no formato em que está (%X, que significa hexadecimal) a variável no terceiro argumento, que na verdade, é a conta de complemento de dois: FFFFF-DEC2HEX(inteiro) (ele já interpreta como hexadecimal pelo %X) +1.

Um comentário:

Anônimo disse...

croqui

Quem sou eu

Raphael Fernandes
Carioca, Brasileiro, Estudante de Robótica
Hiperativo, Imperativo
Gosto de tecnologia, de transporte, de Rock, de reclamar e de propagandas criativas (e outras coisas que posso ter falado em um post ou não)
Musicalmente falando, sou assim.

Related Posts Plugin for WordPress, Blogger...

Veja também...