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

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

19.09.2022, 18:05. Показов 1143. Ответов 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
10356 / 5771 / 1274
Регистрация: 12.03.2015
Сообщений: 26,667
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
10356 / 5771 / 1274
Регистрация: 12.03.2015
Сообщений: 26,667
22.09.2022, 19:38
Цитата Сообщение от nikita209 Посмотреть сообщение
Спасибо Вам за ответ. Не могли бы Вы и первую часть кода написать? У меня при вводе числа с клавиатуры на выходе получается что-то не понятное
Первую часть? Не понял.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
22.09.2022, 19:52
Цитата Сообщение от nikita209 Посмотреть сообщение
Преобразовать число, заданное в двоично-десятичном коде в двоичное
Повикипедил, проверил код от Verevkin, сходится.
А вы что ожидали ?
0
Злостный нарушитель
 Аватар для Verevkin
10356 / 5771 / 1274
Регистрация: 12.03.2015
Сообщений: 26,667
22.09.2022, 20:02
Цитата Сообщение от SmallEvil Посмотреть сообщение
А вы что ожидали ?
халявы
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
22.09.2022, 20:12
Кликните здесь для просмотра всего текста
0
0 / 0 / 0
Регистрация: 23.10.2018
Сообщений: 3
22.09.2022, 20:32  [ТС]
Я когда ввожу двоично-десятичное число с клавиатуры, передаю его в функцию, описанную вами, то выводит не то что нужно. Понятно, что ошибка у меня, получается ввод неправильный, можете написать пример ввода?
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
22.09.2022, 20:42
nikita209,
Двоично-десятичный код

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

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

Добавлено через 1 минуту
Цитата Сообщение от nikita209 Посмотреть сообщение
Я когда ввожу двоично-десятичное число с клавиатуры
А как вы его вводите ?
0
Злостный нарушитель
 Аватар для Verevkin
10356 / 5771 / 1274
Регистрация: 12.03.2015
Сообщений: 26,667
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
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
22.09.2022, 20:51
Цитата Сообщение от SergP01 Посмотреть сообщение
так вы сво код выложите, а его поправят
Да нечего там поправлять. Не сможет он ввести двоично десятичный код
Нету у него их.
Что бы его ввести, нужно что то вывести, а у нас ничего нету. (С) Простофилино
0
Злостный нарушитель
 Аватар для Verevkin
10356 / 5771 / 1274
Регистрация: 12.03.2015
Сообщений: 26,667
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
12942 / 6809 / 1821
Регистрация: 18.10.2014
Сообщений: 17,231
22.09.2022, 21:04
Цитата Сообщение от Verevkin Посмотреть сообщение
я так отлаживал:
Попробовал запустить. На выходе получил

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

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

Конечно, отдельный вопрос: а как записан входной двоично-десятичный код? Почему в вопросе об этом - ни слова?
0
Злостный нарушитель
 Аватар для Verevkin
10356 / 5771 / 1274
Регистрация: 12.03.2015
Сообщений: 26,667
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
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru