К примеру byte -128 127 зачем нужно делать такое разделение
Почему бы просто не сделать один тип с бесконечным диапазоном?
Java
почему примитивные типы имеют определенный диапазон чисел?
можно, в некоторых языках так и делается - в питоне, например
прикол в том, что операции с этим типом придётся реализовывать программно, разбивая его как раз на куски по 1,2,4,8 байт, потому что только с такими процессор умеет проделывать операции
само собой разумеется, что продолжительность операции над таким числом как минимум линейно зависит от его длины
прикол в том, что операции с этим типом придётся реализовывать программно, разбивая его как раз на куски по 1,2,4,8 байт, потому что только с такими процессор умеет проделывать операции
само собой разумеется, что продолжительность операции над таким числом как минимум линейно зависит от его длины
Как верно заметил Дед Мазай в комментариях, примитивные типы предназначены для хранения данных определенной длины. К тому же, бесконечная точность на конечном автомате, которым является компьютер, принципиально невозможна.
Современные процессоры не могут обрабатывать менее 4 (или даже 8) байт информации одновременно, поэтому особенной разницы в скорости между "короткими" и "длинными" целочисленными типами нет. Но иногда нужно использовать структуры - сложные типы с различными примитивными внутри. Часто это необходимо для обращения к API операционной системы. И вот там размер уже важен. Поэтому и было введено так много разных целых типов.
Что касается чисел с плавающей точкой - в процессоре для работы с ними существует специальный сопроцессор, ОЧЕНЬ сильно ускоряющий вычисления. Но он тоже работает с числами фиксированного размера. А если большая точность тебе не нужна - можно для вычислений использовать GPU, там вообще все летает.
Если подытожить - необходимость в различных типах данных обусловлена архитектурой компьютера и его операционных систем.
Современные процессоры не могут обрабатывать менее 4 (или даже 8) байт информации одновременно, поэтому особенной разницы в скорости между "короткими" и "длинными" целочисленными типами нет. Но иногда нужно использовать структуры - сложные типы с различными примитивными внутри. Часто это необходимо для обращения к API операционной системы. И вот там размер уже важен. Поэтому и было введено так много разных целых типов.
Что касается чисел с плавающей точкой - в процессоре для работы с ними существует специальный сопроцессор, ОЧЕНЬ сильно ускоряющий вычисления. Но он тоже работает с числами фиксированного размера. А если большая точность тебе не нужна - можно для вычислений использовать GPU, там вообще все летает.
Если подытожить - необходимость в различных типах данных обусловлена архитектурой компьютера и его операционных систем.
Потому что: хотим получить высокую скорость вычислений -- пихаем числа в регистры процессора, а они имеют ограниченную битность.
ндээ... программирование - это явно не твоё...
Похожие вопросы
- Почему все типы данных в Java пишутся с маленькой буквы, кроме String?
- Подскажите, есть ли какая-нибудь команда в Java, которая позволит выбирать рандомно только между определёнными числами?
- Составь программу в зависимости величины даны чисел матрица количество положительных и отрицательных элементов
- Задача Есть 2 массива. из первого массива все положительные числа переносим в начало второго массива
- в java перечисления не привязаны к числам???
- Java сравнение чисел
- Помогите написать java программу нахождения максимального числа из 4-х
- как разбить четырехзначное число на цифры java
- Этот вопрос давно меня мучает. Почему в более мощных языках программирования нужно самому объявлять тип данной переменой
- Что делает store_(число) и load_(число) в байткоде метода класса?
И что значит линейно зависит от его длины?