ti ringrazio, adesso ho letto il tuo post, nel frattempo ho sviluppato una mia implementazione

codice:
#include <stdio.h>

int main(){
    int varX=-4;
    int varY;
    if(varX<0){
        printf("1");
        varX=(varX*-1);
    } else printf("0");
    for (varY=128; varY!=0; varY>>=1){
        printf (varX & varY ? "1" : "0");
    }
}
ma non ne sono molto soddisfatto, è un po' sporco nel codice, come posso migliorarlo? ci sono modi migliori per scrivere una conversione in binario?

ovviamente ho incluso anche il bit del segno già che ci sono, faccio una funzione che mi converte tutti gli interi.