Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
1_vlad
0 / 0 / 0
Регистрация: 01.04.2013
Сообщений: 49
#1

Сброс битов - C++

21.09.2013, 20:37. Просмотров 1195. Ответов 4
Метки нет (Все метки)

Вот такое условие. "Если в числе x установлен бит n и установлен бит m, то в числе y сбросить биты 3 и самый старший бит." Логически понятно, но как представить в виде кода С++. При помощи цикла.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2013, 20:37     Сброс битов
Посмотрите здесь:

Установка и сброс битов - C++
Здравствуйте. Мне совершенно не ясно, как устанавливать/сбрасывать бит по его номеру(Читал об этом и в книге и в интернете. Скорее всего,...

Операции с побитовыми операторами (число 8 битов и число 9 битов) - C++
Доброго времени суток всем ! Прошу ответа на несложный вопрос (...по крайней мере мне так кажется...) Есть функция: ...

Перенос битов - C++
Ввести число, перенести все еденичные биты в середину разрядной сетки.

Подсчет битов - C++
На входе даны 2 последовательности по 8 бит IN_0, IN_1. OUT_0 изначально равен 0. Если в IN_0 встречаются 2 единицы, идущие...

Замена битов - C++
Помогите решить задачу, пожалуйста. Ввести последовательность из 8 символов. Если символ есть + - * / %, то заменить в нём четыре младших...

Обнуление битов - C++
Дано целые числа N и k. Обнулите у числа N его последние k бит и выведите результат. Рекомендуется сделать эту задачу без использования...

Обнуление битов - C++
Вечер добрый, народ. Очень нужна ваша помощь. Есть задача: Написать функцию, указанную в задании, используя только операции над...

Установка битов - C++
Установка битов Для этого надо сложить операцией «ИЛИ» x с маской, у которой единицы в соответствующих позициях. Например, чтобы...

Копирование битов - C++
Задача: Вот ее решение: int copy_bits( int A, int B, int startBit, int stopBit) //Post 999 { /* Биты считаем с нулевого,...

Поля битов - C++
Не могу разобраться в полях. Пытаюсь создать структуру полей битов для хранения даты какого-нибудь события. Две функции: 1-я устанавливает...

Замена битов - C++
Ввести последовательность из 8 символов. В каждом из символов в их двоичном представлении заменить: для нечетных (по порядку) символов...

Вычленение битов - C++
Здраствуйте, такая проблема, я получаю из LPT порта данные в обычном децимальном измерении, как мне это число перевести в бинарное?...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
21.09.2013, 21:07     Сброс битов #2
Цикл тут не нужен.
C++
1
2
3
4
5
    int x = 0x12345678;
    int y = 0x12345678;
    int m = 2;
    int n = 5;
    if ( (x & (1 << m)) && (x & (1 << n)) ) y &= ~((1 << 3) | (1 << 31));
Проверить не могу, но по-моему все верно.
1_vlad
0 / 0 / 0
Регистрация: 01.04.2013
Сообщений: 49
22.09.2013, 16:43  [ТС]     Сброс битов #3
Цитата Сообщение от castaway Посмотреть сообщение
Цикл тут не нужен.
C++
1
2
3
4
5
    int x = 0x12345678;
    int y = 0x12345678;
    int m = 2;
    int n = 5;
    if ( (x & (1 << m)) && (x & (1 << n)) ) y &= ~((1 << 3) | (1 << 31));
Проверить не могу, но по-моему все верно.
а как это записать программой "от" и "до"?
lipnev
60 / 60 / 1
Регистрация: 14.09.2013
Сообщений: 145
22.09.2013, 16:50     Сброс битов #4
1_vlad, а зачем тебе от и до? В условии задачи написаны конкретные номера битов.
1_vlad
0 / 0 / 0
Регистрация: 01.04.2013
Сообщений: 49
22.09.2013, 17:03  [ТС]     Сброс битов #5
Цитата Сообщение от lipnev Посмотреть сообщение
1_vlad, а зачем тебе от и до? В условии задачи написаны конкретные номера битов.
у меня есть код
Код
#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;
    }
хочу после функции "int printDecAsBin(int a, int* pdec)" созать еще одну функцию с названием "resetBit" и в нее вставить тот код, что мне советуют. Но не могу сообразить.

кратко говоря, мне предложили условие. а как это прогрмаммно сообразить и вывести в компиляторе?
Yandex
Объявления
22.09.2013, 17:03     Сброс битов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru