|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.07.2017, 20:54 | #1 |
Форумчанин
Регистрация: 10.10.2008
Сообщений: 123
|
Преобразование и сужение чисел java
Всем привет. Изучаю java. Начал изучение с сайта javarush.ru
Разбираюсь сейчас с темой преобразования и сужения типов. Начал разбираться вот с таким примером: Код:
Судя по лекциям на javarush на 10 уровне, то там написано, что переменная типа byte занимает всего один байт памяти. Поэтому из этого числа берем последние восемь цифр: 1000010001110100011010111000111 Получилось такое число в двоичной системе: 11000111. В десятичной системе данное число равно 199. Далее из 199 отнимаем 256. Получится -57. Компилятор так и выводит. С этим я разобрался. Далее разбираю следующий похожий пример: Код:
Подскажите, почему во втором примере компилятор вывел -1 ??? P.S. Строго не судите) Java где-то месяц изучаю) Последний раз редактировалось StudentMarat; 09.07.2017 в 22:07. |
09.07.2017, 21:17 | #2 | |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Какая-то математика у вас не понятная...
Вот на С++ Код:
Цитата:
|
|
09.07.2017, 21:40 | #3 | |
Форумчанин
Регистрация: 10.10.2008
Сообщений: 123
|
Цитата:
Может, конечно, я и что-то не правильно понимаю, но всю свою логику (как я понял тему) я расписал. Не знаю, правильная она или нет. Вот и хочу выяснить. Вот что мне вывел компилятор во втором моем примере (пользуюсь средой intellij idea): |
|
09.07.2017, 21:49 | #4 | |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Оно в обоих случаях не работает
Цитата:
|
|
09.07.2017, 21:52 | #5 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Код:
|
09.07.2017, 21:55 | #6 |
Форумчанин
Регистрация: 10.10.2008
Сообщений: 123
|
Вот что в первом случае выводится у меня. Второй сообщением выше
|
09.07.2017, 22:02 | #7 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Перестаньте скрины лепить - копируйте нормально текст. Из-за скринов вы вон сообщение выше пропустили.
|
09.07.2017, 22:06 | #8 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Вопщем трюк с отбрасыванием дроби не совсем корректен. Как видим работает только при одинаковой длине типа. Т.е. double = 8 байт, значит верно будет (long) = 8 байт. Лучше использовать методы классов:
https://stackoverflow.com/questions/...nteger-in-java |
09.07.2017, 22:15 | #9 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
09.07.2017, 22:49 | #10 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Преобразование к int (java) | zhenya.ya | Помощь студентам | 1 | 10.12.2011 11:46 |
Растягивание/сужение формы | Ko$ | Общие вопросы Delphi | 2 | 30.10.2011 12:53 |
преобразование чисел(delphi) | mineralkaaa | Помощь студентам | 4 | 18.05.2010 13:00 |
Преобразование чисел | artemavd | Общие вопросы Delphi | 15 | 30.07.2008 15:48 |
Преобразование дробных чисел | Gon | Помощь студентам | 5 | 01.05.2008 13:12 |