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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ printf или boost::format сделать из одной цифры две http://www.cyberforum.ru/cpp-beginners/thread775380.html
как принудительно выводить в строку 2 цифры? например вместо 2 — 20, а если 2 цифры то ничего не добавлять? пытался перевести в float, но не знаю как удалить "0." в printf , \b - удаляет предыдущий символ а не следующий.
C++ Написать программу, которая считывает текст из файла Сост. блок схему,если не трудно сделайте скрин схемы)))))заранее огромное спасибо))))!!! Написать программу, которая считывает текст из файла и выводит на экран только строки,содержащие двузначные числа http://www.cyberforum.ru/cpp-beginners/thread775348.html
C++ Знак ^ c++
Для начала знать бы как он называется, потому что гугл в ответ выдает ересь, ну а в идеале где используется, что делает....
C++ Функции (даны две матрицы. Переставить в них четные и нечетные столбцы)
Помогите пжлста с помощью функции (желательно с пояснениями). Даны две матрицы размерности 7x7 вещественных случайных чисел, принадлежащих диапазону . Переставить в них четные и нечетные столбцы. Вывести исходные и полученные матрицы. В числе подпрограмм должна быть подпрограмма инициализации матрицы случайными числами из определенного диапазона, процедура вывода матрицы на экран в удобной для...
C++ error LNK2001 и указатели на члены класса http://www.cyberforum.ru/cpp-beginners/thread775296.html
Изучал идею с таблицей функций, вылезает ошибка 2001. Визуалка 11.0.5. Заранее благодарен. (http://www.tebyan.net/newindex.aspx?pid=31159&BookID=22056&PageIndex=187&Language=3 хотя всё как в книге Липпмана) class ok { public: void a(){} void b(){} void c(){} void d(){}
C++ исключение Допустим у нас есть такая программа: #include <iostream> #include <vector> #include <fstream> #include <string> using namespace std; void readIntegerFile(const string& fileName, vector<int>&dest) throw() { подробнее

Показать сообщение отдельно
Ion01
0 / 0 / 0
Регистрация: 27.01.2013
Сообщений: 18
31.01.2013, 00:56     Проясните код. Побитовое увелечение/уменьшение на 1
Вот пример кода. Вы можете объяснить мне как он работает.
Я понимаю, что 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 минут
Я понял. Детально проработаю эту тему, потом самостоятельно напишу пояснение данных побитовых операций.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru