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.
croqui
ResponderExcluir