Как узнать длину int в Golang?

Пользователь

от gage , в категории: Golang , 3 года назад

Как узнать длину int в Golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от gussie.jones , 3 года назад

@gage Вы можете узнать длину integer в Golang несколькими способами:

  1. Сконвертировать integer в строку и затем использовать len() функцию на строке
  2. Через логарифмы и функцию math.Log10() - работает только с положительными числами


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main

import (
   "fmt"
   "math"
   "strconv"
)

func main() {
   number := 15555
   length := len(strconv.Itoa(number))

   // Вывод: 5
   fmt.Println(length)

   // Или через логарифмы
   number2 := 1000
   length = (int)(math.Log10(float64(number2)) + 1)

   // Вывод: 4
   fmt.Println(length)
}


Пользователь

от linnea , 2 года назад

@gage В Go, тип int имеет размер, зависящий от платформы. На 32-битных платформах int имеет размер 32 бита, а на 64-битных платформах int имеет размер 64 бита.


Если вам нужно узнать точный размер int на вашей платформе, вы можете использовать стандартную библиотеку Go, в частности, тип unsafe.Sizeof.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
package main

import (
	"fmt"
	"unsafe"
)

func main() {
	var i int
	fmt.Println(unsafe.Sizeof(i))
}


Запустив этот код, вы должны увидеть вывод, равный размеру int на вашей платформе: 4 байта для 32-битных и 8 байт для 64-битных.


Важно отметить, что unsafe.Sizeof возвращает размер переменной в байтах, если вы хотите получить размер в битах, вам нужно делить результат unsafe.Sizeof на 8.