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

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

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

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

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

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

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

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

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

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

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

Перестановка битов - C++
Помогите пожалуйста в файле задание

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 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));
Проверить не могу, но по-моему все верно.
0
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));
Проверить не могу, но по-моему все верно.
а как это записать программой "от" и "до"?
0
lipnev
60 / 60 / 1
Регистрация: 14.09.2013
Сообщений: 145
22.09.2013, 16:50 #4
1_vlad, а зачем тебе от и до? В условии задачи написаны конкретные номера битов.
0
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" и в нее вставить тот код, что мне советуют. Но не могу сообразить.

кратко говоря, мне предложили условие. а как это прогрмаммно сообразить и вывести в компиляторе?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 17:03
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.09.2013, 17:03
Ответ Создать тему
Опции темы

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