Come viene rappresentato il numero negativo nel numero intero con segno a 32 bit? È il doppio o il complemento? o l'ultimo bit a sinistra è come una bandiera? Ad esempio: (-10)Come vengono rappresentati i numeri negativi nel numero intero con segno a 32 bit?
risposta
Attualmente la maggior parte dei computer utilizza two's complement per interi con segno, ma può variare a seconda dell'architettura hardware, del linguaggio di programmazione o di altri problemi specifici della piattaforma.
Per una rappresentazione in complemento a due, il più significativo ("sinistra") bit è indicato come il bit di segno , e sarà impostato per un intero negativo e chiaro per un numero intero non negativo. Tuttavia, è più di una semplice "bandiera". Vedere lo Wikipedia article per ulteriori informazioni.
Quindi il bit frontale sarà 1 per il negativo e 0 per il positivo? Che dire di 0? – User
Lo zero è rappresentato da tutti i bit zero. –
Di solito è un doppio complemento.
0xFFFFFFFF = -1
0xFFFFFFFE = -2
0xFFFFFFFD = -3
...
& così via
Il bit più significativo (ultimo bit a sinistra) è impostato per i numeri negativi.
Intendi "prima punta a sinistra"? –
Che ne dici di "primo bit da sinistra" o "ultimo bit da destra". :) –
Dalla serie C99:
Per tipi interi con segno, i bit del rappresentazione dell'oggetto deve essere divisi in tre gruppi: i bit di valore, bit di riempimento, e il bit di segno. Lì non devono essere necessariamente bit di riempimento; lì deve essere esattamente un bit di segno. Ogni bit che è un po valore deve avere lo stesso valore come lo stesso bit nella rappresentazione oggetto della corrispondente tipo senza segno (se ci sono M valore bit del tipo firmata e N nel tipo senza segno quindi M = N). Se il bit di segno è zero, è necessario che non influenzi il valore risultante. Se il bit segno è uno, il valore deve essere modificato in uno dei seguenti modi:
- il valore corrispondente con il segno bit 0 viene negato (segno e grandezza);
- il bit di segno ha il valore - (2N) (complemento a due);
- il bit di segno ha il valore - (2N - 1) (un complemento).
Quale di queste applica è implementazione definita, come è se il valore di bit di segno 1 e tutti bit zero (per i primi due), o con bit di segno e ogni valore bit 1 (per complemento di quelli), è una rappresentazione di trappola o un valore normale. In il caso di segno e grandezza e complemento di , se questa rappresentazione è un valore normale è chiamato zero negativo.
Penso che la risposta è 0110
, preceduta da 1 ripetuto 28 volte, quindi, sembra che:
1111 1111 1111 1111 1111 1111 1111 0110;
Passi:
rappresentazione bit per 10 è:
0000 0000 0000 0000 0000 0000 0000 1010;
0->1
e1->0
per tutti i bit:1111 1111 1111 1111 1111 1111 1111 0101;
aggiungere 1 al l'ultimo bit, e propagare al 'avanti, fatto!
1111 1111 1111 1111 1111 1111 1111 0110;
===
È possibile verificare con l'aggiunta con 10, e si otterrà 0 per tutti i bit. Come accennato in precedenza, è basato su 2 e segue il complemento a due.
- 1. Trovare posizioni di bit in un numero intero a 32 bit senza segno
- 2. Modo memoria efficiente per memorizzare numero intero con segno a 32 bit in Redis
- 3. Scambio bit aritmetico su un numero intero con segno
- 4. Come vengono rappresentati i bignum internamente?
- 5. Conversione di numeri interi senza segno a 32 bit (big endian) a lungo e indietro
- 6. Conversione di numeri esadecimali in stringhe su numeri negativi, in Perl
- 7. Come convertire l'int firmato a 32 bit int a 32 bit senza segno int?
- 8. Bit inverso C in numero intero senza segno
- 9. Come vengono convertiti i numeri interi in byte in Java?
- 10. Come rappresentare un numero intero superiore a un numero intero
- 11. C++: è sicuro confrontare un intero a 64 bit con un intero a 32 bit?
- 12. Numero intero senza segno a 1 byte C++
- 13. 64 bit per divisione 32 bit
- 14. Qt Converti stringa esadecimale negativa a numero intero con segno
- 15. Come modellare il numero intero con segno con BitVector?
- 16. Mappare un float a 32 bit su un intero a 32 bit
- 17. Come si dichiara un numero intero a 32 bit in java?
- 18. sostituire byte a 32 bit numero
- 19. Python, come inserire un numero intero a 32 bit nell'array di byte
- 20. Operatore bit a bit per ottenere byte da 32 bit
- 21. Come posso visualizzare il doppio numero a 64 bit usando VBScript sul SO a 32 bit?
- 22. mysql previene i numeri negativi
- 23. Trova il numero intero massimo con segno firmato in python
- 24. Come generare un numero intero senza segno casuale a 64 bit in C
- 25. Javascript: converti un numero intero (esadecimale) con segno javascript
- 26. numero di 1 in 32 bit numero
- 27. Convertire un numero intero a 32 bit in 4 byte di dati in javascript
- 28. Il vettore di numero intero senza segno a 8 bit non è supportato
- 29. Contare il numero di bit in un intero a 64 bit (lungo, grande)?
- 30. In che modo Java calcola i numeri negativi?
In quale contesto? Diversi sistemi/piattaforme faranno le cose in modo diverso. –
Intendi "prima punta a sinistra"? –