|
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
|
||||||
Перевод десятичного числа в двоичное число27.09.2013, 20:21. Показов 3536. Ответов 9
Метки нет (Все метки)
Всем доброго времени суток!
Собственно вот мой код, который должен переводисть число десятичное в число двоичное. Потестил я его, со значениями от 0 до 9 - всё работает, но когда я берусь за число 10, то вместо того, чтобы на выходе у меня было двоичное число 1010, у меня получается число 1110. Помогите. Вот код:
0
|
||||||
| 27.09.2013, 20:21 | |
|
Ответы с готовыми решениями:
9
|
|
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
|
||||||
| 27.09.2013, 20:39 | ||||||
|
Почему бы не сделать как-то так?
2
|
||||||
|
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
|
|
| 27.09.2013, 20:44 [ТС] | |
|
BuGi, Спасибо за варинат, но я просто ещё не разбирал библиотеку <algorithm> и соответственно не знаком с: reverse(fl.begin(),fl.end());
Я бы хотел узнать в чём моя ошибка в коде.
0
|
|
|
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
|
||||||
| 27.09.2013, 20:51 | ||||||
|
Что код вообще делает? n нигде не меняется, а потом ты само число number получается сравниваешь с нулем и 1
number - (in * 2) == number - (number/2 * 2) == number - number А reverse из algorithm просто переворачивает вектор. Можно сделать просто for(int i = fl.size()-1; i >= 0 ; i--) cout << fl[i];
0
|
||||||
|
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
|
|
| 27.09.2013, 21:02 [ТС] | |
|
BuGi, n нигде не меняется, а потом ты само число number получается сравниваешь с нулем и 1, я это сделал что бы не усложнять код вычислениями, а сразу задать как будет выгледить число 0 и 1 в двоичном коде, мой "аглоритм", работает лишь до тех пор пока number >= 2, а если пользователь захочит получить число 1 или 0 в двоичной коде? вот для этого я и провожу сравнения n, которое равно начальному number, с нулём и 1.
не очень понял, что вы имели ввиду здесь number - (in * 2) == number - (number/2 * 2) == number - number ну тоесть да, так оно и есть, если сокротить, но к чему это просто я не хочу пока лезть в эту библиотеку, я хочу сначала понять, как можно сложным образом реализовать данную идую, да и вообще все идеи, а уже после переходить на более простные для компилятора команды.
0
|
|
|
25 / 25 / 2
Регистрация: 25.09.2013
Сообщений: 76
|
||||||
| 27.09.2013, 21:05 | ||||||
1
|
||||||
|
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
|
|
| 27.09.2013, 21:08 [ТС] | |
|
govorov, Спасибо, но опять же, у меня цель понять, в чём у меня ошибка, а не просто скопировать код и радоваться тому, что я сам не смог написать его.
0
|
|
|
25 / 25 / 2
Регистрация: 25.09.2013
Сообщений: 76
|
||||||
| 27.09.2013, 21:20 | ||||||
|
Условие while (number >= 2) задает не исходное число, а до какого момента делить. Так не пойдет, потому что в этом варианте младщий бит никак не учитывается. Внутри цикла while цикл for по count не нужен, так как каждый бит обрабатывается одним проходом цикла while.
Вот как я исправил твой код:
2
|
||||||
|
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
|
||
| 27.09.2013, 21:30 | ||
|
0
|
||
|
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
|
|
| 27.09.2013, 21:53 [ТС] | |
|
govorov, Здорово, это именно то, что я и хотел увидеть, чёткое и понятное объяснение. Большое спасибо!
Добавлено через 13 минут BuGi, Ещё один вопрос, почему моё fl.push_back(number - (in * 2)) тоже самое, что ваше fl.push_back(number%2) Я сначало и сам хотел так написать, но потом подумал, что оператор % ведь берёт остаток от деления. Разве например 15%2 не будет равно 0.5? Добавлено через 8 минут Ложная тревога, сам допёр.
0
|
|
| 27.09.2013, 21:53 | |
|
Помогаю со студенческими работами здесь
10
Рекурсия: перевод десятичного числа в двоичное Перевод отрицательного целого десятичного числа в двоичное Перевод отрицательного целого десятичного числа в двоичное Перевод десятичного числа в двоичное, результат в массиве типа int
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|