Ho un ID che è rappresentato in un int64
. Come posso convertirlo in un []byte
? Vedo che il pacchetto binario fa questo per i suggerimenti, ma voglio essere sicuro di non rompere i numeri negativi.Come posso convertire un int64 in un array di byte in go?
10
A
risposta
23
La conversione tra int64
e uint64
non modifica il bit di segno, solo il modo in cui è interpretato.
È possibile utilizzare Uint64
e PutUint64
con la corretta ByteOrder
http://play.golang.org/p/wN3ZlB40wH
i := int64(-123456789)
fmt.Println(i)
b := make([]byte, 8)
binary.LittleEndian.PutUint64(b, uint64(i))
fmt.Println(b)
i = int64(binary.LittleEndian.Uint64(b))
fmt.Println(i)
uscita:
-123456789
[235 50 164 248 255 255 255 255]
-123456789
1
Il codice:
var num int64 = -123456789
// convert int64 to []byte
buf := make([]byte, binary.MaxVarintLen64)
n := binary.PutVarint(buf, num)
b := buf[:n]
// convert []byte to int64
x, n := binary.Varint(b)
fmt.Printf("x is: %v, n is: %v\n", x, n)
uscite
x is: -123456789, n is: 4
Problemi correlati
- 1. In Go, come posso convertire una struttura in un array di byte?
- 2. Come convertire un array di byte in un array int?
- 3. In Java, come posso convertire un InputStream in un array di byte (byte [])?
- 4. Come convertire un array di byte in Base64 in Java?
- 5. Go: come convertire struct in [] byte?
- 6. Conversione da int32 a byte array in go
- 7. Come convertire un XmlDocument in un array <byte>?
- 8. Converti Go [] byte in un C * char
- 9. Convertire un array di byte a una classe che contiene un array di byte in C#
- 10. Come eseguire il marshalling di un array byte/uint8 come array json in Go?
- 11. Come posso convertire un array di float in un byte [] e viceversa?
- 12. C# Come convertire System.Net.ConnectStream in un byte [] (array)
- 13. Come posso convertire un array in un hash in Perl?
- 14. Come posso convertire un vettore in un array di celle?
- 15. Come posso convertire in modo sicuro un array di byte in una stringa e tornare indietro?
- 16. C#: Convertire array di byte in un galleggiante
- 17. Come convertire da [] byte a int in Programmazione Go
- 18. Come convertire l'immagine in array di byte e array di byte in stringa Base64 in Android?
- 19. Convertire un IBuffer in un array di byte in Windows Phone 8.1, come?
- 20. Come posso convertire un array di byte in double e back?
- 21. Come posso convertire una stringa con terminazione null in un buffer di byte in una stringa in Go?
- 22. Come posso convertire un int a due byte in C#?
- 23. Come convertire un sbyte [] in byte [] in C#?
- 24. Come convertire un array di byte per lo streaming
- 25. Come convertire NSData in array di byte in iPhone?
- 26. come convertire l'immagine in array di byte in java?
- 27. Come convertire/trasmettere NSNumber in Int64?
- 28. Convertire un array di stringhe nell'array di byte
- 29. Come posso convertire il byte [] in BitmapImage?
- 30. Come posso convertire una frase in un array di parole?
Ciao, devo usare le costanti 'MaxVarintLenXX' per determinare la dimensione del buffer prima di mettere? –