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

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

Войти
Регистрация
Восстановить пароль
 
m1namoto
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 51
#1

Работа с битами - C++

11.09.2012, 16:04. Просмотров 619. Ответов 4
Метки нет (Все метки)

Стоит задача: вывести все двоичные коды чисел от 0 и до 2n-1. Сделать напролом могу(переводить в цикле каждое число в двоичную с-му и выводить), но интересует существования уже реализованного сложения двоичных чисел. В bitset случаем такого инкремента нету ? Я что-то не смог найти. Заранее благодарен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2012, 16:04     Работа с битами
Посмотрите здесь:

Работа с битами - C++
три раза писал но все равно не получается((( 1-)Ввести последовательность из 8 символов. Сравнить 5-й и 6-й биты каждого символа. Если...

Работа с битами. - C++
Здрасте. Дана задача: Определить на сколько в числе А больше значущих битов, что равны единице, чем битов, что равны нулю. Помогите...

Работа с битами - C++
Не могу понять, почему не правильно работает программа. Программа зашифровывает строку, выводит, потом расшифровывает и выводит. ...

Работа с битами - C++
В общем вот локальная проблема: есть int, который выступает в роли сетки нулей и единиц, два примера, разницу между которыми не могу...

работа с битами - C++
доброй ночи, форумчане, необходима ваша помощь) как и всем тут... вот изучаю с++ и добрался до работы с битами, учу решением задач. на...

Работа с битами. - C++
помогите!! как писать эту на программе с++ Ввести последовательность из 8 символов. Сравнить 5-й и 6-й биты каждого символа. Если они...

Работа с битами - C++
Я уже задолбался... :wall: Может мне кто нибудь подскажет как из 00111010 (58) получить 00001010 (10) хотя бы каким методом... код...

Работа с битами в Char - C++
Доброго времни суток! Стоит задача сделать операцию сложения битов по модулю 2 над двумя объектами типа char, приравнять полученный...

Работа с битами числа - C++
Извлечь 5 битов числа A, начиная со второго и вставить их в число B, начиная с третьего бита. Нашел код...

Работа с битами, сумма ряда - C++
Выполнить следующие задания: 1. Определить, является ли указанный бит 1 или 0 в числе a. 2. Инвертировать указанный с клавиатуры бит...

Работа с битами. Чтение переменной по битам - C++
Всем привет.. задача такая: Есть некое число, находящееся в переменной X в шестнадцатеричной системе счисления.. Необходимо в...

Работа с битами - в файл записывается не то, что нужно - C++
собственно что хочу сделать.... Пусть b - каждый бит байта a.val b ^= b ^ b ^ b ^ b ^ c; где с для i равного 0,1,5,6 будет 1,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Elboy
131 / 112 / 4
Регистрация: 01.09.2012
Сообщений: 288
11.09.2012, 17:45     Работа с битами #2
Компьютеру по-барабану с какими числами ты работаешь, всё равно он преобразует всё к 0 и 1.
Инкремент ничем не отличается в разных системах счислениях:
2 + 1 = 3;
00000010 + 00000001 = 00000011;

Если же задача заключается в том, чтобы использовать только побитовые операции, то голову поломать ещё стоит, а так не за чем.
Evg
Эксперт CАвтор FAQ
17470 / 5708 / 363
Регистрация: 30.03.2009
Сообщений: 15,670
Записей в блоге: 26
11.09.2012, 18:00     Работа с битами #3
Условно говоря, имеется массив из n элементов. Изначально он наполнен нулями. Далее моделируется процесс прибавления единицы. Процесс выглядит следующим образом. Если последний элемент равен нулю, то он становится равным единице. В противном случае он становится равным нулю, а сию операцию выполняем над предпоследним элементом (если мы не самый первый). Т.е. это операция сложения с переносом
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
11.09.2012, 18:04     Работа с битами #4
Цитата Сообщение от Evg Посмотреть сообщение
Условно говоря, имеется массив из n элементов. Изначально он наполнен нулями. Далее моделируется процесс прибавления единицы. Процесс выглядит следующим образом. Если последний элемент равен нулю, то он становится равным единице. В противном случае он становится равным нулю, а сию операцию выполняем над предпоследним элементом (если мы не самый первый). Т.е. это операция сложения с переносом
Все так и есть:
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>
#include <cmath>
using namespace std;
int main() {  
    int N, a[100]={0}, i, j;
    cout<<"N= ";
    cin>>N;
    for(i=0; i<(int)pow(2.,(double)N); i++)
    {
        for(j=N-1; j>=0; j--)
            cout<<a[j];
        cout<<endl;
        a[0]++;
        for(j=0; j<N-1; j++)
            if(a[j]==2)
            {
                a[j+1]++;
                a[j]=0;
            }
    } 
  return 0;
}
m1namoto
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 51
12.09.2012, 00:06  [ТС]     Работа с битами #5
Вот это оно Спасибо, еще бы по одному комментарию к каждому циклу для ясности, был бы вообще доволен!
Хотя я поспешил с просьбой Всё и так логично
Yandex
Объявления
12.09.2012, 00:06     Работа с битами
Ответ Создать тему
Опции темы

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