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

побитовое увеличение - C++

Восстановить пароль Регистрация
 
_KosmoS_
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 12
07.12.2010, 17:41     побитовое увеличение #1
Здравствуйте уважаемые пользователи. Это моя первая тема. Собственно суда я пришел за помощью.
Так вот. Как побитово увеличить любое число на 1? (в borland C++). Я разобрался что необходимо найти 0 в двоичном коде. Но как Это сделать? Может кто то объяснить или хотя бы написать как оно должно выглядеть в СРР?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2010, 17:41     побитовое увеличение
Посмотрите здесь:

Побитовое представление числа. C++
Побитовое смещение вправо с изюминкой C++
C++ Побитовое чтение
C++ Побитовое исключающее ИЛИ (XOR)
Побитовое вычитание C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vasal
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 55
07.12.2010, 17:52     побитовое увеличение #2
ну как бы можно сдвинуть побитово на единицу в какую либо сторону, то есть выглядеть это будит так
C++
1
2
num >> 1; //сдвиг на 1
printf("%d", num & 1); //происходит замена.если будит 1 0 то 0 будит заменен на единицу
это кусочек программы, в которой мы должны перевести число из десятичной системы в двоичную
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
07.12.2010, 18:04     побитовое увеличение #3
Все же сдвиг на 1 - num >>= 1; //сдвиг на 1
Vasal
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 55
07.12.2010, 18:10     побитовое увеличение #4
у меня с "=" не получилось.программа просто вылетала
_KosmoS_
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 12
08.12.2010, 00:12  [ТС]     побитовое увеличение #5
спасибо тем кто не поленилса пошевелить мозгами, но вот что у меня вышло.:
C++
1
2
3
4
5
6
7
8
9
10
11
int a,b,c,d;
a=36;
b=1;
c=a&b;
while (c!=0)
        {
         a=a^b;
         b=b<<1;
         c=a&b;
         }
d=a^b;
для любых целых "а"
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
08.12.2010, 00:21     побитовое увеличение #6
_KosmoS_, А так разве не проще ?
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
int main()
{
    int N = 12;
    std::cout << -(~N);
    return 0;
}
Yandex
Объявления
08.12.2010, 00:21     побитовое увеличение
Ответ Создать тему
Опции темы

Текущее время: 08:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru