Сколько в памяти занимают реализации int32 и int64, какие у них предельные значения?
Этот вопрос проверяет понимание типов с фиксированным размером в Go и их свойств.
Короткий ответ
Тип int32 занимает 4 байта (32 бита) в памяти, а int64 — 8 байт (64 бита). Их предельные значения:
- Для int32: от -2,147,483,648 до 2,147,483,647.
- Для int64: от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.
Длинный ответ
1. Размер и диапазон:
int32 (4 байта):
Диапазон: -2^31 до 2^31-1.
int64 (8 байт):
Диапазон: -2^63 до 2^63-1.
2. Пример использования:
package main
import (
"fmt"
"math"
)
func main() {
fmt.Printf("Size of int32: %d bytes\n", 4)
fmt.Printf("Max int32: %d, Min int32: %d\n", math.MaxInt32, math.MinInt32)
fmt.Printf("Size of int64: %d bytes\n", 8)
fmt.Printf("Max int64: %d, Min int64: %d\n", math.MaxInt64, math.MinInt64)
}Вывод:
Size of int32: 4 bytes
Max int32: 2147483647, Min int32: -2147483648
Size of int64: 8 bytes
Max int64: 9223372036854775807, Min int64: -9223372036854775808
3. В каких случаях использовать:
- int32: Когда важна экономия памяти, например, для массивов или структур.
- int64: Для работы с большими числами, финансовыми расчетами или временными метками.