К концу 2018 года в мире насчитывается несколько сот языков программирования, меньшая часть из них представлена узкоспециализированными языками, такими как, например, Ada (язык, изобретенный ВВС США для управления баллистическими ракетами) или Fortran, в основном применяемый в научной разработке программного обеспечения. Но большинство из них общедоступно для понимания и изучения и находят широкое применение.
Типы данных в информатике — это структурная и размерная характеристика выделенной ячейки памяти, в которую можно поместить некоторое значение для дальнейших операций. Одним из таких типов является тип integer (int). Это целочисленный тип данных. То есть поместить в зарезервированную ячейку типа integer можно только целое число (0, 1, 2, 256, 10000 и так далее).
Диапазон значений, которые можно положить в ячейку типа integer, отличается в других языках программирования и на разных процессорах, например в языке программирования Pascal составляет от -32768 до 32768. Попытка «положить» данные больше или меньше данного диапазона вызовет «ошибку переполнения данных».
Характеристики типа данных integer
В 32-разрядных архитектурах занимают от −2 147 483 648 (-231) до 2 147 483 647 (231−1)
- Хранится как целое число.
- Диапазон разнится от выбора языка программирования и архитектуры.
Существуют типы integer, без знаков. Например, unsigned int в C#. Неправильное использование таких типов данных может приводить к ошибкам.
Также существуют различные вариации типа integer, такие как:
- short int - предусматривается с целью сократить количество памяти, выделяемой под нужды программиста.
- long int - напротив, создан для тех, кто боится, что в ходе работы программы есть риск "вылететь" за пределы обычного int и получить "ошибку переполнения данных".
Типы integer, real, dint (в языке Pascal) относятся к математическим типам данных. Это значит, что возможно производить математические действия - сложение, умножение, вычитание, деление.
Характеристики типа integer real
Для запоминания вещественного числа в ОЗУ отводится шесть байтов памяти, поэтому расчеты всегда выполняются с конечной точностью, зависящей от формата числа. Вещественные данные хранятся как целое число с плавающей десятичной точкой.
Другие типы данных в популярных языках программирования
Char — символьный тип данных, может хранить в себе 1 символ из таблицы символов ASCII. Занимает 1 байт и интерпретируется как символ ASCII.
String — строковый тип данных, обычно представлен массивом объектов типа char. Обычно возможности современных языков позволяют совершать самые разнообразные действия над объектами типа string, например конкатенацию (склеивание), удаление строк, замену символов в строке.
Boolean — логический тип данных. Примитивный тип данных в информатике, выражающий 2 состояния. Очень полезен, когда в программе необходимо выразить только 2 состояния (например, написать функцию, которая бы возвращала только правду или ложь).
Приведение типов
Языки программирования позволяют «приводить» типы друг к другу. Например, инициализировав переменную типа integer, мы можем в дальнейшем привести ее к типу double, то есть разрешить компилятору перезаписать ее и обращаться с ней в дальнейшем как с числом с плавающей точкой.
Но не все типы данных возможно так просто преобразовывать. Например, мы никак не приведем string к integer, компилятор просто не поймет наших действий. Также есть частные случаи компиляторов и языков программирования. Например, в языке Pascal нельзя преобразовать тип integer к integer real, потому что только тип real поддерживает операцию деления.
В современных языках, таких как C#, нет таких проблем, чаще всего программист может безболезненно преобразовывать интуитивно похожие типы данных, такие как int. double, long int и так далее. Более того, в динамически типизируемых языках даже возможна ситуация, когда тип данных char приводится к int!
Это дозволено потому, что компилятор, вместо того, чтобы работать с символом, берет его порядковый номер из таблицы ASCII и уже его использует для взаимодействия с int. В языках со строгой типизацией, таких как C++ или C#, это, конечно же, невозможно.
Это основные типы данных в информатике. В современных языках программирования переменные часто представляют собой уже не просто выделенное место в оперативной памяти, а целые «объекты» или «классы», что сильно расширяет возможности операций с ними.
Чтобы понять, как хранятся такие сложные структуры, необходимо углубиться в такую неисчерпаемую тему, как объектно-ориентированное программирование, самый современный инструмент для создания мощных, расширяемых и поддерживаемых годами программ.