Originariamente inviato da shinichi
ehm.. no, questo programma deve accettare in input una forma aritmetica, nella quale un numero binario è negativo se negativo è il segno.
Quindi, facendo un esempio, il formato di input sara'

-101010100

oppure

+100100100

e che si deve intendere il valore binario "puro" con il segno determinato dal primo carattere ... e questo segno dovra' essere presente in maniera obbligatoria oppure potra' anche mancare (e in questo caso?).

Se non definisci in maniera "chiara" l'input della tua funzione, non si potra' dare una risposta se non per approssimazioni successive ...

poi, ovviamente ho preparato gia altre funzioni per trattare una stringa in modo da operare in forma aritmetica, booleana o linguaggio-macchina

ora, non studio informatica ma se non sbaglio quella da te citata è la forma negativa in linguaggio macchina dove si usa quella forma per via della struttura logica circolare del calcolatore che puo eseguire solo somme e per questo la forma negativa si crea passando un numero alla posizione equivalente ma nel semicerchio di valori opposto
Quella citata da me e' l'unica forma di rappresentazione dei valori binari con segno.

Non esiste una forma "aritmetica" o "linguaggio macchina" o chissa' cosa ...

Esiste una rappresentazione binaria "pura" e una "con segno", con il metodo del complemento a due. Tutti i computer utilizzano questa forme.

La unsigned e' la "pura" ... la signed e' la "C2" ...

L'incongruenza della tua domanda e' proprio qui ... tu vuoi utilizzare una rappresentazione binaria che non ha senso per il sistema ...