Come è unsigned int / rappresentato a lungo
-
24-09-2019 - |
Domanda
I stava leggendo una certa assemblea esercitazione in cui non ci sono stati spiegati gli interi con segno ei numeri interi senza segno e la differenza tra la loro rappresentazione nella memoria del computer.
Mi ricordo una cosa del genere ci fosse qualche po 'all'inizio il numero in modo che dice se il numero intero senza segno sia o firmati.
Se qualcuno lo sa, si prega di rispondere.
Soluzione
La Pagina di Wikipedia su Firmato rappresentazione Numero mostra la maggior parte delle implementazioni di memoria comune sia firmato e non firmato valori interi.
complemento a due è la rappresentazione più comune.
Altri suggerimenti
Ci sono molte rappresentazioni possibili di numeri con segno, il più comune è complemento a due.
Il MSB non determina se il numero è firmato; in numeri con segno che rappresenta se il numero è negativo. In numeri senza segno è solo l'MSB. E 'il programma che determina se un numero è considerato firmato o non firmato.
he he. domanda ingannevole. firmati e interi senza segno sono rappresentati esattamente lo stesso. guardando memoria che si sarà mai in grado di distinguerli. si tratta di una questione di principio di von Neumann. Allora, dove è la differenza? La differenza è nel modo in cui vengono interpretati. Se variabile è firmato comandi usi del compilatore per interi firmati. Anche se sappiamo che il numero è firmato la sua prima po 'ci dice che di segno. la conversione è fatto come ~i + 1
(sintassi c) in entrambi i modi
Ci sono molte rappresentazioni possibili, ognuno a seconda della organizzazione del computer. I più famosi sono
- complemento a uno
- complemento di Two
In entrambe le rappresentazioni, è possibile testare il primo (più significativo) bit per scoprire se il numero è positivo (di solito off) o negativo (bit su). Cioè, se si trattano il numero come firmato . Se dite al compilatore di trattare tali numeri come non firmato, il bit di segno viene usato come dati (che raddoppia la massima gamma per il tipo di dati).