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

Проясните код. Побитовое увелечение/уменьшение на 1

31.01.2013, 00:56. Показов 1637. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот пример кода. Вы можете объяснить мне как он работает.
Я понимаю, что 16 это 10000 в двоичной системе.
Код легкий, но я не могу понять как происходит увеличение/уменьшение.

C++
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
54
// lab 2.7.1v.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
// побитовое увеличение на 1
int a = 16;
int res1;
int i = 0;
res1 = a;
int c;
c = (a&(1<<i))>>i;
while ((c!=0)&&(i<31))
{
    res1 = (res1^(1<<i));
    i++;
    c = (a&(1<<i))>>i;
}
res1 = (res1^(1<<i));
// побитовое уменьшение на 1
a = 60; // новое значение а
int res2;
int d;
i = 0; // обнулим счетчик
res2 = a;
d = (a&(1<<i))>>i;
while ((d!=1)&&(i<31))
{
    res2 = (res2^(1<<i));
    i++;
    d = (a&(1<<i))>>i;
}
res2 = (res2^(1<<i));
 
//побитовое сравнение двух чисел, проверка на ==
int a1 = 100;
int a2 = 100;
int c1;
int c2;
int res3 = 0;
i = 31; //счетчик = 31
while ((i >= 0) && (res3 == 0)) //рабочает пока не пройдем 0 бит, или проверим условие ==
{
c1 = (a1&(1<<i))>>i;
c2 = (a2&(1<<i))>>i;
i--;
res3 = c1-c2;// если res3 = 0, числа равные; res3 = 1, с1 - больше с2, res3 = -1, с2 - больше с1 
}
 
    return 0;
}
Добавлено через 7 часов 28 минут
Я понял. Детально проработаю эту тему, потом самостоятельно напишу пояснение данных побитовых операций.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.01.2013, 00:56
Ответы с готовыми решениями:

Побитовое уменьшение числа на 1
Всем привет, нужна помощь, пытаюсь написать уменьшение числа на 1 битовыми операциями, пока что вышло int n = 10; int i = 1; ...

Постепенное увелечение/уменьшение height элемента div
Думаю, мне в эту ветку :) Коротко: использую bootstrap, там есть стандартный класс animated fadeInDown (посмотреть можно здесь),...

Упростить код. Побитовое сравнение 2 чисел
Доброго времени суток. Ув. программисты, помогите упростить данный код, но без использования массивов, множеств и строк. Вот сама...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.01.2013, 00:56
Помогаю со студенческими работами здесь

Плавное уменьшение img с уменьшение блока (адаптивно)
При уменьшении окна браузера, уменьшать пропорционально картинку в div'e или сам div и картинку в нём, коим образом? &lt;div...

Увелечение фотки
Подскажите пожалуйста по следующему вопросу. Есть фотка и там объект, в общем нужно сделать зум к этому объекту. Ну как бы по понятней...

увелечение картинок?
У меня есть код, чтобы при наведении мыши на картинку она увеличивалась. В результате когда открываю ссылку, все фото уже увеличенные ( а...

Увелечение оборотов кулера
Как увеличить обороты кулера CPU????? Через BIOS нельзя материнка не позволяет!!! Кулер Zalman CNPS7000V-ALCU.материнская плпта ASUS...

Увелечение размерности массива массивов
У меня есть массив массивов yspev Мне нужно в (двумерном) массиве увеличить количество строк на одну т.е + 1 строка в двумерном...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru