Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 2 weeks, 3 days ago
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 month ago
Ответ на вопрос про количество примитивных типов в java:
В Java существует восемь примитивных типов данных:
byte - 8-битное целое число.
short - 16-битное целое число.
int - 32-битное целое число.
long - 64-битное целое число.
float - 32-битное число с плавающей точкой.
double - 64-битное число с плавающей точкой.
char - 16-битный символ (представляет символ в кодировке UTF-16).
boolean - логический тип (может принимать значения true или false).
Ответ на вопрос про Math.abs:
Когда вы вызываете Math.abs(Integer.MIN_VALUE) в Java, результатом будет Integer.MIN_VALUE, и вы получите отрицательное значение. Давайте разберемся, почему так происходит.
Метод Math.abs() возвращает абсолютное значение числа. То есть он возвращает положительное значение, если число отрицательное, и само число, если оно положительное.
Integer.MIN_VALUE представляет собой наименьшее возможное значение для типа int в Java, которое равно -2,147,483,648 (или −(2^31)).
Когда вы вызываете Math.abs(-2,147,483,648), метод пытается вернуть положительное значение этого числа. Однако в диапазоне int не существует представления для 2,147,483,648, так как максимальное положительное значение int — это 2,147,483,647 (или 2^31 - 1).
Следовательно, попытка преобразовать Integer.MIN_VALUE в положительное значение приводит к переполнению.
По сути, когда Math.abs() пытается вернуть -(-2,147,483,648), это значение не может быть представлено в типе int, и в результате вы получите Integer.MIN_VALUE, а не ожидаемое положительное число.
Как вариант решения можно использовать Math.absExact, он в этом случае кидает ArithmeticError.
Так же обратите внимание на метод Math.floorMod как замену для Math.abs() % intVal
Логическая задача с собеседования:
Два друга, Андрей и Иван, решили приготовить пирог. Андрей внес вклад, добавив в тесто 300 грамм муки, а Иван добавил 200 грамм сахара. Когда пирог был испечен, к ним заглянул сосед и они пригласили его на чаепитие. Пирог разделили поровну на троих. После чаепития сосед оставил им 500 рублей в качестве благодарности.
Андрей предложил делить деньги так: 300 рублей ему, а 200 рублей Ивану. Однако Иван не согласился.
Как вы считаете, как они должны разделить вознаграждение, чтобы все было честно?
Минимальное значение = -2^31.
В Java для типа int
выделено 4 байта памяти. Каждый байт памяти состоит из 8 битов. Каждый бит может принимать только 2 значения — 0 или 1. Переменная типа int
содержит 32 бита и может принимать 4,294,967,296
значений. (2^32)
Половину этого диапазона отдали под отрицательные числа, а вторую — под положительные и еще надо разместить «0». Вот и получилось от \-2,147,483,648
(-2^31) до 2,147,483,647 (
2^31 -1).
Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 2 weeks, 3 days ago
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 month ago