Ayer publique el tema Números de longitud variable en C (Numeros muy grandes)
Donde transformo strings de numeros a su representación en "binario" en memoria. Ya hago sumas y multiplicaciones en forma de sumas multiples.
Necesito hacer ahora restas tengo mis dudas se que es una tonteria pero estoy hecho un lio.
Las sumas a nivel de "byte" las hago asi:
Código
unsigned char resultado[3]; unsigned char acarreo; unsigned char a; unsigned char b; unsigned short c; a = 0xFF; b = 0x01; c = a + b; //ahora c vale 0x0101 resultado[0] = c; acarreo = c >> 8; //el acarreo se le suma al siguiente ciclo de bytes
Asi puedo meter ese seudo codigo en un ciclo de N bytes y poder trabajar con numetro positivos de cualquier longitud
Ahora el detalle que necesito usar la operacion modulo y para ello necesito hacer diviciones y por lo tante necesito restas.
Mi duda es hacer las restas mas o menos igual
Código
#include<stdio.h> int main() { unsigned char a; unsigned char b; unsigned short c; a = 0xFF; b = 0x01; c = a - b; }
Obvio tendré que tener forma de capturar los números negativos, y si es negativo ¿Que hay que hacer? ¿es como si fuera el acarreo en la suma?
intente hacer las restas en el cuaderno en binario y me dormi en el intento eso fue hace unas 5 horas.