Go: konvertiere uint64 nach int64 ohne Informationsverlust

Das Problem mit dem folgenden Code:

var x uint64 = 18446744073709551615
var y int64 = int64(x)

ist dassy ist-1. Ist die einzige Möglichkeit, ohne Informationsverlust zwischen diesen beiden Zahlentypen zu konvertieren, um einen Codierer und einen Decodierer zu verwenden?

buff bytes.Buffer
Encoder(buff).encode(x)
Decoder(buff).decode(y)

Hinweis, ich versuche in Ihrem typischen Fall nicht, eine gerade numerische Konvertierung durchzuführen. Es geht mir eher darum, die statistischen Eigenschaften eines Zufallsgenerators zu erhalten.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage