Тип complex64

Тип complex64 представляет комплексное число, состоящее из двух 32-битных чисел с плавающей точкой (тип float32): действительной и мнимой части. Этот тип занимает 8 байт памяти и используется для хранения комплексных чисел, где требуется баланс между точностью и производительностью. Для создания комплексного числа используются функции complex или литеральный синтаксис.

Синтаксис

govar num complex64 = 1 + 2i
num := complex(3.5, 4.2)

Создание комплексного числа

Давайте создадим комплексное число с действительной частью 1.5 и мнимой частью 2.5:

gopackage main

import "fmt"

func main() {
  var num complex64 = 1.5 + 2.5i
  fmt.Println(num)
}

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

go(1.5+2.5i)

Создание с помощью функции complex

Давайте создадим комплексное число, используя встроенную функцию complex:

gopackage main

import "fmt"

func main() {
  num := complex(3.14, 2.71)
  fmt.Println(num)
}

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

go(3.14+2.71i)

Извлечение действительной и мнимой части

Для извлечения частей комплексного числа используются функции real и imag:

gopackage main

import "fmt"

func main() {
  num := complex(5.5, 3.3)
  realPart := real(num)
  imagPart := imag(num)
  fmt.Println("Real:", realPart)
  fmt.Println("Imag:", imagPart)
}

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

go"Real: 5.5"
"Imag: 3.3"

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

С комплексными числами можно выполнять стандартные арифметические операции:

gopackage main

import "fmt"

func main() {
  a := 1 + 2i
  b := 3 + 4i

  sum := a + b
  diff := a - b
  product := a * b
  quotient := a / b

  fmt.Println("Sum:", sum)
  fmt.Println("Diff:", diff)
  fmt.Println("Product:", product)
  fmt.Println("Quotient:", quotient)
}

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

go"Sum: (4+6i)"
"Diff: (-2-2i)"
"Product: (-5+10i)"
"Quotient: (0.44+0.08i)"

Сравнение комплексных чисел

Комплексные числа можно сравнивать только на равенство с помощью операторов == и !=:

gopackage main

import "fmt"

func main() {
  a := 1 + 2i
  b := 1 + 2i
  c := 3 + 4i

  fmt.Println("a == b:", a == b)
  fmt.Println("a == c:", a == c)
  fmt.Println("a != c:", a != c)
}

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

go"a == b: true"
"a == c: false"
"a != c: true"

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

  • тип complex128,
    который представляет комплексное число с двойной точностью
  • тип float32,
    который представляет 32-битное число с плавающей точкой
  • тип float64,
    который представляет 64-битное число с плавающей точкой
  • тип array,
    который представляет упорядоченный набор элементов одного типа