так с Long типом. Беру я число -1, в двоичном представлении - это 64 единицы, перевожу в строку - окей, показывает толпу единиц, и эту же строку конвертирую обратно в long - ошибка! Почему?
long allOneBinaryLong = 0b1111111111111111111111111111111111111111111111111111111111111111L;
System.out.println(allOneBinaryLong); // -1
String allOneString = Long.toBinaryString(allOneBinaryLong);
System.out.println(allOneString); // 1111111111111111111111111111111111111111111111111111111111111111
long allOneNormalLong = Long.parseLong(allOneString, 2); // Ошибка!!! А должно быть -1?
// NumberFormatException
// System.out.println(allOneNormalLong); // nothing!!!
Обсуждают сегодня