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

Вывод двоичного числа и сброска битов

21.09.2013, 20:29. Показов 4452. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Примерно такого типа задачаНаписать программу на языке C++, читающую со стандартного ввода 4 десятичных числа x, y,m, n. Все смещения будут указываться начиная с младшего бита,начиная с 0. Если в числе x установлен бит n и установлен бит m, то в числе y сбросить биты 3 и самый старший бит.
Программа должна вывести все исходные данные в десятичном виде, исходные и полученные значения x, y в двоичном виде в столбик, причём справа от числа должно быть выведено имя соответствующей переменной.

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
//#include <cstdlib>
//#include <stdio.h>
using namespace std;
const int N = 8;
 
int print (int ar []) {
for (int i = 0; i<N; i++) {
cout<<ar [i];
}
cout<<endl;
return 0;
}
int printDecAsBin(int a, int* pdec) {
 
while (a > 0) {
for (int i = 7; i>=0; i--) {
int b = a % 2;
a /= 2;
pdec [i] = b;
}
    }
return 0;
}
 
int main()
{
    int dec [N] = {0};
    int* pdec = dec;
    setlocale(LC_ALL, "rus");
    int x,y;
    int n,m;
    
    int z=sizeof(y)-1;
 
    cout<<"Ведите данные\n";
    cout<<"x=";cin>>x;
    cout<<"y=";cin>>y;
    cout<<"m=";cin>>m;
    cout<<"n=";cin>>n;
    
    //system("cls");
    cout<<"Исходные данные в десятичном виде:\n"<<x<<" - x\n"<<y<<" - y\n"<<m<<" - m\n"<<n<<" - n\n";
    cout<<"Исходные значения x, y в двоичном виде:"<<endl;
    printDecAsBin(x, pdec);
    printf("%s - x\n",print(pdec)); 
    printDecAsBin(y, pdec);
    printf("%s - y\n",print(pdec)); 
 
      
    system("pause");
    return 0;
    }
У меня начало вот такое получается. То есть перевод совершил, но далее запутался как сбрасывать биты. Что посоветуете?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.09.2013, 20:29
Ответы с готовыми решениями:

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

Из двух целых чисел А и B собрать одно, состоящее из четных битов A и нечетных битов B...
Нужна помощь с задачей. Из двух целых чисел А и B собрать одно, состоящее из четных битов A и нечетных битов B

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

4
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
21.09.2013, 22:37
Цитата Сообщение от 1_vlad Посмотреть сообщение
Если в числе x установлен бит n и установлен бит m, то в числе y сбросить биты 3 и самый старший бит.
Как то так:
C++
1
2
3
4
5
unsigned int x, y;
// ...
if ((x & (1u << n)) && (x & (1u << m))) {
   y &= ~((1u << 3) | (1u << (sizeof (y) * CHAR_BIT - 1)));
}
0
0 / 0 / 1
Регистрация: 01.04.2013
Сообщений: 49
22.09.2013, 16:35  [ТС]
Цитата Сообщение от gray_fox Посмотреть сообщение
Как то так:
C++
1
2
3
4
5
unsigned int x, y;
// ...
if ((x & (1u << n)) && (x & (1u << m))) {
   y &= ~((1u << 3) | (1u << (sizeof (y) * CHAR_BIT - 1)));
}
что в данном случае является 1u? u - unsigned?
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
22.09.2013, 19:04
Цитата Сообщение от 1_vlad Посмотреть сообщение
u - unsigned?
Да. Use bitwise operators only on unsigned operands
0
0 / 0 / 1
Регистрация: 01.04.2013
Сообщений: 49
22.09.2013, 19:10  [ТС]
gray_fox,

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

Вывод в двоичных из двоичного файла
Мне нужно вывести информацию находящуюся в двоичном файле но при работе программы вылезает ошибка void main() { SetConsoleCP(1251); ...

Цикл для проверки битов числа
Имеется задача: &quot;Определить, насколько в числе А больше значащих битов, равных единице, чем битов, равных ну-лю&quot;. Собственно, я...

Побитовые операции в Си. Изменение отдельных битов числа
Собственно задание такое: &quot;Дано длинное целое неотрицательное число k. Получить целое число, отбросив нечетные биты данного числа k.&quot;...

Xor двоичного числа
Добрый день! Прошу написать простую программу на c++ xor двоичного числа.

проверка двоичного числа
написать программу которая проверяет является ли введенная с клавы строка двоичным числом


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru