vorrei sapere qual è la differecnce tra Integer 16, Integer 32 e intero a 64, e la differenza tra un intero con segno e un intero senza segno (NSInteger e NSUInteger)tipi NSInteger
risposta
Non sono sicuro di quale tipo si intenda per "Integer 16", "Integer 32" e "Integer 64", ma in genere questi numeri si riferiscono alla dimensione in bit del tipo intero.
La differenza tra un numero intero con segno e senza segno è l'intervallo di valori che può rappresentare. Ad esempio, un intero a 16 bit con complemento a due complementi può rappresentare numeri compresi tra -32.768 e 32.767. Un numero intero a 16 bit senza segno può rappresentare valori compresi tra 0 e 65.535.
Per la maggior parte dei computer in uso oggi, un intero con segno di larghezza n può rappresentare i valori [-2 n -1, 2 n -1) e un intero senza segno di larghezza n può rappresentare valori [0,2 n).
Unsigned vs intero con segno -
Non firmato viene in genere utilizzato dove le variabili non sono autorizzati a prendere numeri negativi. Ad esempio, durante il looping di un array, è sempre utile/leggibile se la variabile del pedice di array è unsigned e loop-through fino alla lunghezza dell'array.
D'altra parte, se la variabile può avere anche numeri negativi quindi dichiarare la variabile come firmata int. Le variabili intere sono firmate per impostazione predefinita.
Dai un'occhiata allo Foundation Data types. NInteger e NSUInteger e typedef per int e unsigned int.
Da wikipedia
In informatica, il numero firmato rappresentazioni sono necessari per codificare numeri negativi in numero binario sistemi
il che significa che si deve normalmente usare un po 'per codificare il firmare riducendo così l'intervallo di numero che puoi rappresentare.
NSInteger e NSUInteger sono tipi di dati interi personalizzati di Apple. Il primo è firmato mentre il secondo non è firmato. Su build a 32 bit, NSInteger è typedef'd come int mentre su build a 64 bit è tipicamente lungo. NSUInteger è typedef'd come unsigned int per 32-bit e unsigned long per 64-bit. I tipi firmati coprono l'intervallo [-2^(n-1), 2^(n-1)] dove n è il valore del bit e i tipi senza segno coprono l'intervallo [0, 2^n].
Durante la codifica per un singolo programma autonomo, l'utilizzo di NSInteger o NSUInteger è considerato la migliore procedura per la protezione futura contro le modifiche ai bit della piattaforma. Non è la migliore pratica quando si ha a che fare con esigenze di dati a dimensione fissa, come con formati di file binari o reti, poiché le larghezze di campo richieste sono definite in precedenza e costanti indipendentemente dal livello di bit della piattaforma. È qui che entrano in uso i tipi di dimensione fissa definiti in stdint.h (cioè, uint8_t, uint16_t, uint32_t, ecc.).
- 1. Valore assoluto di NSInteger
- 2. NSInteger! = Nil
- 3. Conversione NSNumber a NSInteger
- 4. Aggiungi NSInteger a NSMutableData
- 5. correttamente Conversione NSString a CGFloat, NSInteger, ecc
- 6. Risolvendo NSInteger <-> NSNumero problema
- 7. Conversione implicita di NSInteger error
- 8. Perché non dichiaro NSInteger con *
- 9. Come convertire NSIndexPath in NSInteger?
- 10. aggiungendo oggetto NSInteger a NSMutableArray
- 11. C'è qualche differenza tra "statico NSInteger const" e "statico const NSInteger"?
- 12. Differenza tra int, NSInteger e NSUInteger
- 13. NSInteger dovrebbe essere usato davvero ovunque?
- 14. Come convertire An NSInteger in un int?
- 15. Controllare se un oggetto è NSInteger
- 16. Passando variabile NSInteger a NSMutableDictionary o NSMutableArray
- 17. Qual è il valore massimo di NSInteger?
- 18. È possibile trasmettere un NSInteger a NSNumber?
- 19. Assegnazione della proprietà NSInteger nell'app per iPhone
- 20. Problemi dispari con int e NSInteger
- 21. Come convertire un NSInteger in un NSTimeInterval
- 22. Come convertire NSIndexpath in NSInteger o semplicemente int?
- 23. Qual è la differenza tra NSNumber e NSInteger?
- 24. Come convertire NSInteger in un valore binario (stringa)
- 25. Ordinamento dei valori NSString come se NSInteger utilizzasse NSSortDescriptor
- 26. Posso personalizzare il viewWithTag esistente: (metodo NSInteger) per stringTag?
- 27. NSInteger contro architettura a 64 bit su iOS
- 28. È possibile impostare un NSInteger come NULL in Objective-C?
- 29. Tipi di torta e tipi
- 30. tipi di tipi di funzioni
Grazie per la risposta, e sì, intendevo un numero intero a 16 bit, numero intero a 32 bit e numero intero a 64 bit – Skullhouseapps