Для атомарных типов сам тип описывает диапазон (например, int имеет диапазон от -2 147 483 648 до 2 147 483 647).
Все, что является пользовательским типом, может иметь или не иметь диапазон, потому что пользовательские типы (например, структура, класс, интерфейс) являются составными типами, которые могут состоять из атомарных или других пользовательских типов.
Определение типа также зависит от языка.
Как правило, вы можете применять диапазон только к атомарным типам на основе определенного языка.