Тип int64

Тип int64 представляет целое число со знаком, которое занимает 64 бита в памяти. Диапазон значений для int64 составляет от -9223372036854775808 до 9223372036854775807. Этот тип используется, когда требуется работа с большими целыми числами, выходящими за пределы int32, или при работе с внешними системами, где явно задан 64-битный формат данных.

Объявление переменной

Объявим переменную типа int64 и присвоим ей значение:

gopackage main

import "fmt"

func main() {
  var num int64 = 9223372036854775807
  fmt.Println(num)
}

Результат выполнения кода:

go9223372036854775807

Диапазон значений

Попробуем вывести минимальное и максимальное значение типа int64 с помощью констант из пакета math:

gopackage main

import (
  "fmt"
  "math"
)

func main() {
  fmt.Println(math.MinInt64)
  fmt.Println(math.MaxInt64)
}

Результат выполнения кода:

go-9223372036854775808
9223372036854775807

Переполнение

При попытке присвоить значение, выходящее за пределы диапазона, возникает ошибка компиляции. Например, попробуем присвоить число, превышающее MaxInt64:

gopackage main

func main() {
  var num int64 = 9223372036854775808
  _ = num
}

Результат выполнения кода:

go"constant 9223372036854775808 overflows int64"

Арифметические операции

Выполним сложение двух чисел типа int64 и выведем результат:

gopackage main

import "fmt"

func main() {
  a := int64(1000000000)
  b := int64(2000000000)
  res := a + b
  fmt.Println(res)
}

Результат выполнения кода:

go3000000000

Преобразование типов

Преобразуем значение типа int в int64. Обратите внимание, что на 32-битных системах тип int занимает 32 бита, поэтому преобразование безопасно:

gopackage main

import "fmt"

func main() {
  var small int = 12345
  var big int64 = int64(small)
  fmt.Println(big)
}

Результат выполнения кода:

go12345

Смотрите также

  • тип int,
    который представляет целое число со знаком, размер которого зависит от платформы
  • тип int8,
    который представляет целое число со знаком на 8 бит
  • тип int16,
    который представляет целое число со знаком на 16 бит
  • тип int32,
    который представляет целое число со знаком на 32 бита