4.5. Основы Kotlin. Хранение данных в памяти компьютера

Вещественные числа

Вещественные числа хранятся в памяти в так называемом экспоненциальном формате M * 2E. При этом часть бит выделяется на хранение мантиссы M (она находится в ограниченном диапазоне, обычно от 0.5 до 1), а другая часть бит — на хранение порядка E. Как мантисса, так и порядок хранятся в двоичной системе счисления, причём один бит всегда выделяется под знак.

В Котлине имеется два вещественных типа. Один из них, уже известный нам Double, занимает в памяти восемь байт. При этом 53 бита выделяется на мантиссу, а 11 бит на порядок. Более короткий тип Float занимает четыре байта: 24 бита на мантиссу и 8 бит на порядок.

Вещественные литералы по умолчанию имеют тип Double. Для того, чтобы создать литерал типа Float, необходимо использовать суффикс F:

val f1: Float = 1.0  // Error!
val f2: Float = 1.0F // OK!

Тип Double является рекомендуемым для хранения вещественных чисел. Тип Float следует использовать, если чисел требуется много, а его точности достаточно.

Символы

Символы в Котлине используют тип Char и занимают в памяти два байта. Вместо символа в памяти хранится его код — номер данного символа в таблице кодировки Юникод. Тип Char поддерживает только символы из так называемого базового многоязыкового диапазона (Basic Multilingual Plane), номера которых находятся в интервале от 0 до 216 – 1. Дополнительные символы с номерами более 216 – 1 могут быть использованы следующим образом:

  • для хранения кода символа может быть использован тип Int;
  • для представления такого символа внутри строки используются два элемента типа Char, идущих подряд.

Напомним, что символьные константы в Котлине записываются в одинарных кавычках. Для представления специальных символов используется экранирование, например:

  • '\t' — табуляция;
  • '\n' — новая строка;
  • '\r' — возврат каретки (этот и предыдущий символ остались от эпохи пишущих машинок, которым, чтобы начать вывод с новой строки, было необходимо выполнить две операции — возврат каретки к началу строки и перевод каретки на новую строку);
  • '\'' — одинарная кавычка;
  • '\"' — двойная кавычка;
  • '\\' — обратный слэш;
  • '\$' — доллар.

Символы, отсутствующие на клавиатуре, могут быть также заданы с помощью шестнадцатеричного номера в таблице Юникод, например, '\uFF00' — символ с номером FF00.

Додати коментар