Berapa banyak jenis berangka yang terdapat dalam Go?

青灯夜游
Lepaskan: 2023-01-09 11:08:11
asal
1784 orang telah melayarinya

Terdapat tiga jenis jenis berangka dalam Go: 1. Jenis integer, yang boleh dibahagikan kepada jenis integer bebas platform dan jenis integer berkaitan platform Perbezaannya ialah sama ada panjangnya konsisten di bawah seni bina CPU yang berbeza atau sistem pengendalian. 2. Jenis titik terapung boleh dibahagikan kepada float32 dan float64, yang sepadan dengan jenis berangka titik terapung ketepatan tunggal dan dua ketepatan dalam IEEE754 masing-masing. 3. Nombor kompleks boleh dibahagikan kepada dua jenis: kompleks128 (nombor nyata dan khayalan 64-bit) dan kompleks64 (nombor nyata dan khayalan 32-bit ialah nombor kompleks128 lalai).

Berapa banyak jenis berangka yang terdapat dalam Go?

Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.

Jenis data asas dalam sistem bahasa Go umumnya termasuk jenis berangka dan jenis rentetan.

Dan nombor jenis nilai boleh dibahagikan kepada jenis berikut: integer, nombor titik terapung, nombor kompleks , setiap satunya mengandungi jenis berangka dengan saiz yang berbeza, contohnya, integer bertanda termasuk int8 , int16, int32, int64, dsb. Setiap jenis berangka menentukan julat saiz yang sepadan dan sama ada ia menyokong tanda positif dan negatif.

Jenis integer bahasa Go (jenis integer)

Dalam bahasa Go, integer dibahagikan kepada integer bebas platform dan integer berkaitan platform. Perbezaan utama terletak pada sama ada panjang jenis integer ini konsisten di bawah seni bina CPU atau sistem pengendalian yang berbeza.

Integer bebas platform

Integer bebas membezakan antara integer yang ditandatangani dan integer yang tidak ditandatangani, dan julat data yang diwakilinya adalah berbeza.

Berapa banyak jenis berangka yang terdapat dalam Go?

Jenis integer berkaitan platform

Go secara asli menyediakan tiga jenis integer berkaitan platform, iaitu int, uint dan uintptr.

Berapa banyak jenis berangka yang terdapat dalam Go?

Nota khas: Apabila menulis kod dengan keperluan mudah alih, jangan sekali-kali bergantung sepenuhnya pada panjang jenis ini.

Anda boleh menggunakan fungsi SizeOf yang disediakan oleh pakej tidak selamat untuk mendapatkan panjang tiga integer pada platform.

func main() {
	var a, b = int(5), uint(6)
	var p uintptr = 0x12345678
	fmt.Println("signed integer a's length is", unsafe.Sizeof(a))
	fmt.Println("unsigned integer b's length is", unsafe.Sizeof(b))
	fmt.Println("uintptr's length is", unsafe.Sizeof(p))
}

// 打印输出
signed integer a's length is 8
unsigned integer b's length is 8
uintptr's length is 8
Salin selepas log masuk
Output berformat

go menyediakan pakej fmt perpustakaan standard untuk memformat dan mengeluarkan pangkalan yang berbeza.

func main() {
	var a int8 = 66
	fmt.Printf("%b\n", a) //输出二进制:1000010
	fmt.Printf("%d\n", a) //输出十进制:66
	fmt.Printf("%o\n", a) //输出八进制:102
	fmt.Printf("%O\n", a) //输出八进制(带0o前缀):0o102
	fmt.Printf("%x\n", a) //输出十六进制(小写):42
	fmt.Printf("%X\n", a) //输出十六进制(大写):42
}
Salin selepas log masuk

Jenis titik terapung bahasa Go (jenis perpuluhan)

Bahasa Go menyediakan float32 dan float64 Terdapat dua jenis titik terapung, yang masing-masing sepadan dengan jenis berangka titik terapung ketepatan tunggal dan dua ketepatan dalam IEEE754, yang pada asasnya sepadan dengan jenis apungan dan berganda di Jawa.

Bahasa Go menyediakan dua cara untuk mewakili jenis titik terapung, jenis perpuluhan dan tatatanda saintifik dibahagikan kepada dua kaedah perwakilan: perpuluhan dan perenambelasan.

Notasi perpuluhan

3.1415
.15  // 整数部分如果为0,整数部分可以省略不写
81.80
82. // 小数部分如果为0,小数点后的0可以省略不写
Salin selepas log masuk

Notasi saintifik

十进制表示法:

6674.28e-2 // 6674.28 * 10^(-2) = 66.742800
.12345E+5  // 0.12345 * 10^5 = 12345.000000

十六进制表示法:

0x2.p10  // 2.0 * 2^10 = 2048.000000
0x1.Fp+0 // 1.9375 * 2^0 = 1.937500
Salin selepas log masuk

Output berformat

var f float64 = 112.676899
	// 浮点类型第一种:十进制表示法
	fmt.Printf("%f\n", f) // 112.676899
	// 浮点类型第二种:科学计数法--十进制表示法
	fmt.Printf("%e\n", f) // 1.126769e+02
	// 浮点类型第二种:科学计数法--十六进制表示法
	fmt.Printf("%x\n", f) // 0x1.c2b52502eec7dp+06
Salin selepas log masuk

Go plural bahasa

Go menyediakan dua jenis nombor kompleks, ia adalah kompleks64 dan kompleks128 Bahagian nyata dan khayalan kompleks64 adalah kedua-dua jenis float32, manakala bahagian nyata dan khayalan kompleks128 kedua-duanya jenis float64. Jika nombor kompleks tidak ditaip secara eksplisit, jenis lalainya ialah kompleks128.

Go menyediakan tiga kaedah perwakilan:

1 Mulakan terus pembolehubah jenis kompleks menggunakan nilai literal kompleks

var c = 5 + 7i
var d = 0o123 + .12345E+5i // 83+12345i
Salin selepas log masuk

2 fungsi kompleks yang disediakan oleh Go mencipta nilai jenis complex128

var c = complex(5, 6) // 5 + 6i
var d = complex(0o123, .12345E+5) // 83+12345i
Salin selepas log masuk

3. Menggunakan fungsi nyata dan imej pratakrif yang disediakan oleh Go, anda boleh mendapatkan bahagian sebenar dan bahagian khayalan nombor kompleks, dan nilai pulangan ialah jenis Titik apungan

var c = complex(5, 6) // 5 + 6i
r := real(c) // 5.000000
i := imag(c) // 6.000000
Salin selepas log masuk

Pengetahuan lanjutan: Jenis berangka tersuai

boleh disediakan mengikut jenis kunci dalam bahasa Go Mengisytiharkan jenis baharu berdasarkan jenis angka primitif.

Contohnya,

type NewInt int32
Salin selepas log masuk

NewInt ialah jenis asas kami ialah int32, tetapi ia adalah dua jenis yang berbeza daripada jenis asli int32. Ia tidak boleh ditetapkan secara langsung dan diperlukan untuk dipaparkan dan ditukar Hanya kemudian.

type NewInt int32

	var m int = 5
	var n int32 = 6
	var a NewInt = NewInt(m) // ok
	var b NewInt = NewInt(n) // ok
Salin selepas log masuk

Sudah tentu, jika anda ingin dapat menetapkan dan menggunakan jenis asli secara langsung, Go menyediakan sintaks alias jenis (Jenis Alias) untuk menyesuaikan jenis angka.

type NewInt = int32

	var m int32 = 5
	var n NewInt = m
Salin selepas log masuk

Ringkasan

Jenis angka asli Go mempunyai tiga jenis: integer, titik terapung dan nombor kompleks Jenis , melalui pengenalan ringkas di atas, kita dapat mengetahui bahawa Go pada dasarnya berbeza daripada kebanyakan bahasa arus perdana Sudah tentu, Go juga berbeza, seperti sokongan aslinya untuk jenis jamak.

[Cadangan berkaitan: Pergi tutorial video, Pengajaran pengaturcaraan]

Atas ialah kandungan terperinci Berapa banyak jenis berangka yang terdapat dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan