Size: a a a

2020 November 08

n.

ns ... in learn.java
Шурок Петров
Есть способы стандартного вывода биты числа в обе стороны.
Ты можешь узнать бит числа  и с бита в число. И это все в стандартной JDK.
Вроде нашел как решать. Но возникли две проблемы:
1) Не получается сразу прибавить число 100 к типу short.max
    Пришлось сперва увеличивать на +1. И потом добавлять остаток 99
2) Почему-то в value2 происходит конкатенация, а не просто вывод бинарного числа
источник

n.

ns ... in learn.java
источник

n.

ns ... in learn.java
В общем, как происходит переполнение пока что не понял.
Вернее не понял почему, в цикле оно работает бесконечно,
а при плюсовании к макс числу short - выводит ошибку.
Так и осталось загадкой для меня, почему в цикле не выдает тоже ошибку.

Но спасибо, направление понял, куда копать.
Возможно позже разберусь
источник

ШП

Шурок Петров... in learn.java
Первый пункт - я не понял вообще о чем ты.
источник

ШП

Шурок Петров... in learn.java
short type = Short.MAX_VALUE;
       type+= 100;
       System.out.println(type);
источник

ШП

Шурок Петров... in learn.java
Все работает
источник

ШП

Шурок Петров... in learn.java
2. пункт ты не в ту сторону копаешь.
Возьми каждый тип данных (целых чисел), возьми их максимальное значение - и выведи биты.
Потом, возьми какое-то среднее значение (например /2) и еще раз выведи биты
источник

n.

ns ... in learn.java
Шурок Петров
Первый пункт - я не понял вообще о чем ты.
источник

n.

ns ... in learn.java
Шурок Петров
short type = Short.MAX_VALUE;
       type+= 100;
       System.out.println(type);
Так работает, если пишу  value+=100;
Но не работает, если пишу value=value+100;
источник

ШП

Шурок Петров... in learn.java
ns ...
Так работает, если пишу  value+=100;
Но не работает, если пишу value=value+100;
Не бойся запускать код с ошибкой, чтоб понять в чем причина.
https://stackoverflow.com/questions/53774145/error-incompatible-types-possible-lossy-conversion-from-int-to-short-i-dont/53774823
источник

M

Maxim Borisov in learn.java
про приведение типов нужно почитать. а так можешь тыкнуть на красное подчеркивание и нажать alt+enter он напишет что не так
источник

ШП

Шурок Петров... in learn.java
Насчет почему =+ работает, тут на 100% не уверен, но скорее всего при + jvm сделает рассчет  сразу, и знает что ничего не поместиться. А при =+ рассчет идет уже в рантайме
источник

n.

ns ... in learn.java
Maxim Borisov
про приведение типов нужно почитать. а так можешь тыкнуть на красное подчеркивание и нажать alt+enter он напишет что не так
Такую ошибку выдает.
Incompatible types. Found: 'int', required: 'short'  
Логично, JVM понимает, что не поместится
источник

i

ilya in learn.java
Зачем вообще использовать short ?
источник

n.

ns ... in learn.java
ilya
Зачем вообще использовать short ?
тестирую, как работает переполнение ))
источник

M

Maxim Borisov in learn.java
я могу ошибаться но тут дело в том что когда ты плюсуешь 100 то приводишь к int а потом пытаешься присвоит к переменной которая short.
источник

i

ilya in learn.java
Возможно ошибки и не будет это подчеркивает среда разработки, попробуй выполнить в командной строке без IDE
источник

n.

ns ... in learn.java
Maxim Borisov
я могу ошибаться но тут дело в том что когда ты плюсуешь 100 то приводишь к int а потом пытаешься присвоит к переменной которая short.
источник

n.

ns ... in learn.java
Это java из-за числа 100 приведение делает?
она 100 за int принимает получается
источник

i

ilya in learn.java
любое число по умолчанию int по-моему так и если оно не влазит в short, да к черту вообще этот short он не нужен 😂
источник