Как перевести десятичное отрицательное число в двоичное?
Как это реализовать ?
С положительными все понятно, а что делать с отрицательными не знаю.
Смог только получить обратный код числа ,а вот последний шаг сложение 1 привел меня в тупик.
Видел реализации на PASCAL и C , мне нужно на JAVA
Иван Грозный: берете 127 из предудушего пункта и прибавляете 1 десятично получится 128. Но при переводе в двоичную систему получится -128! Только во 2 пункте нужно либо делать XOR 11111111 если число должно быть одно-байтовым и XOR 1111111111111111 если число должно быть дву-байтовым
Ivanq: Curly Brace: Я написал программу. По следующему алгоритму :
1. Ввод числа (отр.)
2. Переводим в положительный ( получаем модуль )
3. Минус 1 от полученного числа
4. Перевод в двоичный вид
5. Инвертирование
И мне не понадобилось ни волшебная палочка, ни сдвиги.
Иван Грозный: я не пишу на java) да и вообще не культурно просить написать кого то код. что именно делать надо понятно же, а имплементация это уже важно в первую очередь тебе.
Curly Brace: Тогда не надо умничать, если не знаете ответа. Я знаю, что нужно в конце прибавить 00000001 в случае с 5 - кой. Ну и как это сделать ? Это не десятичные числа и к ним нет оператора + , которая бы сложила двоичные числа правильно.!
Иван Грозный: а не надо дерзить вот. сложение в двоичной системе происходит переносом разрядов. если ты не умеешь этого делать, то тебе ваще не стоит лезть в программирование, потому что это вообще в школе изучают на информатике
вообще, знаете ли, царь батюшка, процессор использует бинарные числа для расчетов, а все эти красивые int и прочее придуманы для удобства. и то что вы делаете сложение бинарных чисел это лишь упражнение для понимания процессов, которые выполняет процессор (каламбур какой получился) и в языки программирования не имеют таких инстурментов (ни структур данных, ни операторов). не ну ваще есть битовые операторы типа xor или or или and. но базовых операторов сложения и вычитания (а ведь еще деление есть с умножением) нету в языках прогарммирования. эти упражнения и придуманы дабы студент сам писал эти алгоритмы для операций и вникал в эту муть)
Не совсем понял вопроса, ибо само решение содержится в нём же.
Сделаю предположение, что непонятно - почему прибавляется единица к инвертированному значению?