Originariamente inviato da oregon
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 ...



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 ...
allora, ho premesso che l'input non fa riferimento alla logica del computer ma alla logica aritmetica e ora mi spiego.
Esiste una forma aritmetica e una linguaggio macchina,una che conta il segno, l'altra che conta la forma pura o c2.

Dato che continuiamo a non comprenderci la mettero in modo diverso

Quella a cui io faccio riferimento è la forma aritmetica lineare, dove la positivita o negatività di un numero è data dalla posizione in una retta relativa di un punto rispetto ad un secondo di riferimento, tale logica comprende i valori che vanno da - infinito a + infinito

la forma che io definisco linguaggio macchina e tu definisci unica è la forma aritmetica circolare

dove la positività o negativita di un numero è data dalla posizione di un punto in un circonferenza rispetto ad altri due punti diametralmente opposti, tale logica comprende valori che vanno da 0 ad infinito

ora, quella a cui fai riferimento tu è la logica circolare usata da tutti i pc, l'algoritmo invece deve operare su un numero che risponde alla logica aritmetica lineare.

quindi se ha il segno - il numero decimale sarà negativo
se ha il segno + sarà positivo
se non ha segno è assoluto, cioè esiste contemporaneamente in entrambe le semirette che hanno origine in 0.

ora, per trattare il numero decimale che ritorna dalla funzione in logica lineare mi servono quindi 3 possibilita

la prima è che ritorni un decimale di tipo signed positivo, la seconda è che torni un decimale di tipo signed negativo, la terza è che mi torni un decimale di tipo unsigned.