2012-07-02 7 views

risposta

13

No, questo non è un bug.

Stai dicendo a Format che il primo argomento è un numero intero senza segno, ma in realtà hai passato un intero con segno. Quel numero intero con segno viene interpretato come non firmato e il modello di bit per un valore con segno di -100 equivale a un valore senza segno di 4294967196.

In realtà il tuo codice è in errore. La stringa di formato definisce un contratto che il compilatore non può imporre perché gli argomenti a Format sono digitati in modo non corretto. È tua responsabilità assicurarti che, quando prometti di passare un valore senza segno, passi effettivamente un valore senza segno. L'errore nel codice qui è logicamente equivalente al passare una stringa o un valore in virgola mobile che è un errore che riconoscerai molto più facilmente.

+2

Whoeha, questa è una delle principali interpretazioni errate di me: _universo decimale_ è il tipo di input piuttosto che l'output. – NGLN

+0

@NGLN: le funzioni in stile Printf funzionano in questo modo –

Problemi correlati