Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 23.10.2018
Сообщений: 3

Преобразовать число, заданное в двоично-десятичном коде в двоичное, используя побитовые операции

19.09.2022, 18:05. Показов 1120. Ответов 16
Метки с++ (Все метки)

Студворк — интернет-сервис помощи студентам
Используя побитовые операции, преобразовать число, заданное в двоично-десятичном коде в число двоичное.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.09.2022, 18:05
Ответы с готовыми решениями:

Используя побитовые операции, преобразовать десятичное число в двоичное
printf("Десятичное значение числа: "); scanf("%d", &x); a=0; do { a=a+x&1; printf("\n\t%d",a); a=a<<1; ...

Сложение в двоично-десятичном коде
Помогите решить пожалуйста три примера, не сходятся буквально по 1 цифре, не могу понять в чем дело. 1. - 528- 1129 Используя код...

Сложение чисел в двоично-десятичном коде
Здравствуйте! Нужна помощь в написании программы по сложению чисел в двоично-десятичном коде. При этом нужно учитывать запрещенные...

16
Злостный нарушитель
 Аватар для Verevkin
10238 / 5667 / 1260
Регистрация: 12.03.2015
Сообщений: 26,260
19.09.2022, 20:00
C++
1
2
3
4
5
6
7
8
// преобразование из двоично-десятичного в двоичный кот
unsigned bcd2bin(unsigned x)
{
  unsigned z = 0, f = 1;
  for (; x; x >>= 4, f *= 10) 
    z += f * (x & 0x0F);
  return z;
}
1
0 / 0 / 0
Регистрация: 23.10.2018
Сообщений: 3
22.09.2022, 19:37  [ТС]
Спасибо Вам за ответ.

Добавлено через 3 минуты
Спасибо Вам за ответ. Не могли бы Вы и первую часть кода написать? У меня при вводе числа с клавиатуры на выходе получается что-то не понятное
0
Злостный нарушитель
 Аватар для Verevkin
10238 / 5667 / 1260
Регистрация: 12.03.2015
Сообщений: 26,260
22.09.2022, 19:38
Цитата Сообщение от nikita209 Посмотреть сообщение
Спасибо Вам за ответ. Не могли бы Вы и первую часть кода написать? У меня при вводе числа с клавиатуры на выходе получается что-то не понятное
Первую часть? Не понял.
0
Заблокирован
22.09.2022, 19:52
Цитата Сообщение от nikita209 Посмотреть сообщение
Преобразовать число, заданное в двоично-десятичном коде в двоичное
Повикипедил, проверил код от Verevkin, сходится.
А вы что ожидали ?
0
Злостный нарушитель
 Аватар для Verevkin
10238 / 5667 / 1260
Регистрация: 12.03.2015
Сообщений: 26,260
22.09.2022, 20:02
Цитата Сообщение от SmallEvil Посмотреть сообщение
А вы что ожидали ?
халявы
0
Заблокирован
22.09.2022, 20:12
Кликните здесь для просмотра всего текста
0
0 / 0 / 0
Регистрация: 23.10.2018
Сообщений: 3
22.09.2022, 20:32  [ТС]
Я когда ввожу двоично-десятичное число с клавиатуры, передаю его в функцию, описанную вами, то выводит не то что нужно. Понятно, что ошибка у меня, получается ввод неправильный, можете написать пример ввода?
0
Заблокирован
22.09.2022, 20:42
nikita209,
Двоично-десятичный код

311 - в десятичной СС
0b001100010001 - число 311 в двоично десятичном коде
0b100110111 - число 311 в двоичном представлении

Добавлено через 2 минуты
nikita209, то есть, если вы в консоль введете 319, оно не будет в двоично десятичном коде, оно будет просто в двоичном коде

Добавлено через 1 минуту
Цитата Сообщение от nikita209 Посмотреть сообщение
Я когда ввожу двоично-десятичное число с клавиатуры
А как вы его вводите ?
0
Злостный нарушитель
 Аватар для Verevkin
10238 / 5667 / 1260
Регистрация: 12.03.2015
Сообщений: 26,260
22.09.2022, 20:43
Цитата Сообщение от nikita209 Посмотреть сообщение
Понятно, что ошибка у меня, получается ввод неправильный, можете написать пример ввода?
я ввод не делал, он мне был не нужен для отладки этой функции. Проверки на ошибку в ней, кстати, нету, надо бы добавить.
C++
1
2
3
4
5
6
7
8
9
10
bool trybcd2bin(unsigned x, unsigned &z)
{
  z = 0; 
  for (unsigned f = 1; x; x >>= 4, f *= 10) 
  {  
    if (x & 0x0F > 9) return false;
    z += f * (x & 0x0F);
  }
  return true;  
}
Чо ты там пытаешься вводить - я хз.
0
101 / 95 / 10
Регистрация: 31.08.2022
Сообщений: 1,014
22.09.2022, 20:43
Цитата Сообщение от nikita209 Посмотреть сообщение
что ошибка у меня, получается ввод неправильный, можете написать пример ввода?
так вы сво код выложите, а его поправят
0
Заблокирован
22.09.2022, 20:51
Цитата Сообщение от SergP01 Посмотреть сообщение
так вы сво код выложите, а его поправят
Да нечего там поправлять. Не сможет он ввести двоично десятичный код
Нету у него их.
Что бы его ввести, нужно что то вывести, а у нас ничего нету. (С) Простофилино
0
Злостный нарушитель
 Аватар для Verevkin
10238 / 5667 / 1260
Регистрация: 12.03.2015
Сообщений: 26,260
22.09.2022, 20:57
я так отлаживал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
bool trybcd2bin(unsigned x, unsigned &z)
{
  z = 0; 
  for (unsigned f = 1; x; x >>= 4, f *= 10) 
  {  
    if ((x & 0x0F) > 9) return false;
    z += f * (x & 0x0F);
  }
  return true;  
}
 
int main()
{
  unsigned bin;
  if (trybcd2bin(0x18894, bin)) cout << bin;
  else cout << "not bcd value\n";
  return 0;
}
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12925 / 6793 / 1819
Регистрация: 18.10.2014
Сообщений: 17,190
22.09.2022, 21:04
Цитата Сообщение от Verevkin Посмотреть сообщение
я так отлаживал:
Попробовал запустить. На выходе получил

Code
1
18894
Перечитал задание

Цитата Сообщение от nikita209 Посмотреть сообщение
Преобразовать число, заданное в двоично-десятичном коде в двоичное
Я, может, сильно отстал от жизни, но что-то мне подсказывает, что 18894 - это не "двоичное число".
0
Злостный нарушитель
 Аватар для Verevkin
10238 / 5667 / 1260
Регистрация: 12.03.2015
Сообщений: 26,260
22.09.2022, 21:11
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Я, может, сильно отстал от жизни, но что-то мне подсказывает, что 18894 - это не "двоичное число".
В памяти конпуктера числа хранятся в двоичном виде.
1889410 = 01001001110011102
18894BCD = 000110001000100101002
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12925 / 6793 / 1819
Регистрация: 18.10.2014
Сообщений: 17,190
22.09.2022, 21:20
Цитата Сообщение от Verevkin Посмотреть сообщение
В памяти конпуктера числа хранятся в двоичном виде.
То есть если бы в задании говорилось "преобразовать число из десятичной в двоичную запись", то можно было бы фактически вообще ничего не делать, а рассказать преподу о том, что, мол, "веришь, чувак, там сейчас внутре у ней числа хранятся в двоичном виде"? Это так, но, боюсь, прокатило бы не более одного раза - за находчивость.

Конечно, отдельный вопрос: а как записан входной двоично-десятичный код? Почему в вопросе об этом - ни слова?
0
Злостный нарушитель
 Аватар для Verevkin
10238 / 5667 / 1260
Регистрация: 12.03.2015
Сообщений: 26,260
22.09.2022, 21:25
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
То есть если бы в задании говорилось "преобразовать число из десятичной в двоичную запись", то можно было бы фактически вообще ничего не делать
Нет. Это другое.



Но если ты с моим вариантом не согласен, то имеешь полно право предложить свой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.09.2022, 21:25
Помогаю со студенческими работами здесь

Арифметические действия над числами, представленными в двоично-десятичном коде
Выполните операции, представив заданные числа в коде прямого замещения. Вторую операцию сложения выполните с предварительной коррекцией...

Найти остаток от деления числа N на число M используя только побитовые операции
Помогите найти остаток от деления произвольного числа N на произвольное число M, где N, M - натуральные числа, используя только эти три...

Заданы 6 цифр и число. Используя скобки и бинарные арифметические операции +,-,*,/, получить заданное число
помогите написать программу на C#, как-нибудь отблагодарю Заданы 6 цифр и число. Используя скобки и бинарные арифметические операции...

Определить за какое минимальное число шагов можно получить заданное число используя указанные операции
Сломанный калькулятор может делать только две операции: прибавлять к числу единицу и возводить число в квадрат. Изначально на дисплее...

Определить наименьшее число операций для того, чтобы используя заданные операции получить из числа 1 заданное число N
Задача с курсов сириуса, прошу смотреть на примеры ввода и вывода, спасибо заранее за помощьв решении задачи (никак не могу код написать) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru