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.
fonte
2012-07-02 11:36:02
Whoeha, questa è una delle principali interpretazioni errate di me: _universo decimale_ è il tipo di input piuttosto che l'output. – NGLN
@NGLN: le funzioni in stile Printf funzionano in questo modo –