Come posso convertire un int a due byte in C#?Come posso convertire un int a due byte in C#?
risposta
Dando per scontato che desidera solo i byte bassi:
byte b0 = (byte)i,
b1 = (byte)(i>>8);
Tuttavia, dal momento che 'int' è 'Int32' che lascia altre 2 byte non catturate.
Questa è la mia soluzione. Molto deve essere più veloce di BitConverter. – Joshua
@Joshua, ho fatto un rapido benchmark (versione di rilascio, 50000000 iterazioni, cronometro e test completo ripetuti due volte per rimuovere vari artefatti) e la differenza tra la creazione di un array e l'utilizzo del bit-masking contro la chiamata di BitConverter è di circa 1ns per chiama la mia macchina. Se rimuovi la creazione dell'array (ottieni solo i due byte), la differenza è di circa 14ns. –
Non dubito dei vostri parametri di riferimento. BitConverter è lento in confronto perché deve allocare gli array. Se riesco a pre-rilevare la dimensione del mio array per migliaia di interi, posso risparmiare una quantità di tempo non banale. – Joshua
È possibile utilizzare BitConverter.GetBytes per ottenere i byte che comprendono un Int32. Ci saranno 4 byte nel risultato, tuttavia, non 2.
Un altro modo per farlo, anche se non così liscia come altri metodi:
Int32 i = 38633;
byte b0 = (byte)(i % 256);
byte b1 = (byte)(i/256);
È un Int16?
Int16 i = 7;
byte[] ba = BitConverter.GetBytes(i);
Questo avrà solo due byte in esso.
- 1. Come convertire int [] a byte []
- 2. Convertire 4 byte a int
- 3. Come convertire int [] a int [,] - C#
- 4. Convertire un byte o int a BitSet
- 5. Objective-C, come posso convertire un double in un int?
- 6. Come convertire da [] byte a int in Programmazione Go
- 7. come convertire due byte in un numero a 16 bit?
- 8. Come convertire un array di byte in un array int?
- 9. Provare a convertire un int [] in int [,] utilizzando C#
- 10. In Kotlin Come posso convertire un Int? a un numero
- 11. Come posso convertire un int a un NSString?
- 12. Int a byte array
- 13. convertire 3 byte in int in java
- 14. Converti byte in Int/uint in C
- 15. Ottieni due byte inferiori dalla variabile int
- 16. zlib da C++ a C# (Come convertire byte [] in stream e stream in byte [])
- 17. convertire int a breve in C
- 18. come convertire stringa in byte [] in C#
- 19. C# int conversione byte
- 20. Come posso convertire POI HSSFWorkbook in byte?
- 21. Come posso convertire il byte [] in BitmapImage?
- 22. OCaml - Come posso convertire int in stringa?
- 23. C# convertire system.IO.Stream in byte []
- 24. Come convertire int * in int
- 25. Come posso convertire BitArray in single int?
- 26. Come posso convertire da int a hex in Golang?
- 27. Come convertire un sbyte [] in byte [] in C#?
- 28. Come posso convertire da int a Long in Java?
- 29. Come posso convertire una stringa in un int in Python?
- 30. come convertire un tipo di valore in byte [] in C#?
Quale parte della int? Due byte non sono sufficienti per codificare un intero valore intero a 32 bit. – dtb
'int' richiede 4 byte per la memorizzazione. Desideri perdere le informazioni negli MSB? –
Chi il * beep * ha downvotato questo valore. Questa è una domanda utile e interessante in quanto il modo C non funziona a buon diritto in C# e le API ovvie non esistono (BitConverter è lento e * rotto * in molti modi). – Joshua