Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menghuraikan Rentetan Perenambelasan Sangat Besar kepada Integer dalam Go dengan Ketepatan Tinggi?
Menghuraikan Rentetan Perenambelasan Panjang ke dalam uint dengan Ketepatan Tinggi
Menukar rentetan perenambelasan panjang kepada tatatanda perpuluhan dengan ketepatan tinggi ialah tugas biasa dalam pelbagai pengaturcaraan senario. Walau bagaimanapun, fungsi ParseInt()/ParseUint() lalai dalam Go mempunyai had apabila bekerja dengan nombor yang melebihi ketepatan 64-bit.
Untuk menangani isu ini, pendekatan yang disyorkan ialah menggunakan pakej matematik/besar dalam Pergi. Pakej ini menyediakan sokongan untuk bekerja dengan integer dengan saiz sewenang-wenangnya, membolehkan anda mengendalikan nombor yang jauh lebih besar daripada yang boleh ditampung oleh jenis int64 standard.
Menggunakan matematik/besar untuk Penghuraian Ketepatan Tinggi
Pakej matematik/besar menyediakan jenis besar.Int yang mewakili integer dengan ketepatan arbitrari. Untuk menukar rentetan heksadesimal kepada besar.Int, anda boleh menggunakan langkah berikut:
Contoh dengan matematik/besar
Berikut ialah contoh tentang cara menggunakan matematik/besar untuk menghuraikan rentetan perenambelasan yang panjang menjadi a big.Int:
import ( "fmt" "math/big" ) func main() { s := "0x00000000000000000000000000000000000000000000d3c21bcecceda1000000" i := new(big.Int) i.SetString(s, 16) fmt.Println(i) }
Kod ini menukar rentetan heksadesimal yang disediakan menjadi besar.Int dan mencetak hasilnya.
Ciri-ciri Tambahan matematik/besar
Pakej matematik/besar juga menyediakan sokongan untuk pengekodan.TextMarshaler dan fmt.Scanner antara muka. Ini membolehkan anda membaca dan menulis nilai besar.Int dengan mudah dari dan ke sumber berasaskan teks.
Sebagai contoh, anda boleh menggunakan sintaks berikut untuk menghuraikan rentetan perenambelasan menggunakan fmt.Sscan():
var i big.Int fmt.Sscan("0x000000d3c21bcecceda1000000", &i)
Sebagai alternatif, anda boleh menggunakan fmt.Sscanf() untuk menghuraikan rentetan perenambelasan terus ke dalam besar.Int:
var i big.Int fmt.Sscanf("0x000000d3c21bcecceda1000000", "0x%x", &i)
Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Rentetan Perenambelasan Sangat Besar kepada Integer dalam Go dengan Ketepatan Tinggi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!