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

Выход на биты в поразрядных операторах - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Предоставить пользователю возможность выбрать цвет фона и текста в консоле http://www.cyberforum.ru/cpp-beginners/thread632980.html
Помогите пожалуйста написать программу, которая бы предоставляла пользователю возможность выбрать цвет фона и текста консоли, с помощью операторов: switch и system ("color").
C++ Построение сети в теории, на основе сокетов Построение сетей на основе soket api - протокол только TCP\IP Раскажите в теории как основано это, кодов не надо так токово, просто какие и в каком порядке функции вызываються наприемр. http://www.cyberforum.ru/cpp-beginners/thread632972.html
C++ Templates (composition). exception handling run-time error
Код компилируется. Если делать циклы для push and pop размера такого чтоб не превышало размеры Стока то все работает нормально если циклы больше размера стока то выходит вот такая картинка в...
Создание окон C++
Пожалуйста подскажите, как создавать и работать с окнами.
C++ Подскажите где ошибка, или может есть другой вариант реализации кода http://www.cyberforum.ru/cpp-beginners/thread632906.html
// Упорядочить статический массив(заполненый случайными числами), чтобы в нём чередовались чётные и нечётные элементы, разницу записываем в конец массива. // Функции не использовать. const int...
C++ DLL для Журнала Событий Windows кто-нибудь знает подходящую DLL с пустым сообщением? Например "%s" чтобы было тупо. Очень нужна именно зарегистрированная DLL.. а пустое сообщение для того, чтобы мусор всякий не выводился о том, что... подробнее

Показать сообщение отдельно
Джек
5 / 5 / 0
Регистрация: 16.08.2011
Сообщений: 77

Выход на биты в поразрядных операторах - C++

04.08.2012, 19:31. Просмотров 358. Ответов 1
Метки (Все метки)

Здравствуйте.
Обьясните пожалуйста есть код:

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
 #include <iostream.h>
 #include <conio.h>
 
#pragma argsused
 void Bits(unsigned);
 int main()
 {unsigned x;
 cout<<"celoe bez znaka: ";
 cin>>x;
 Bits(x);
         return 0;
 }
 void Bits(unsigned x)
 {const unsigned s=8*sizeof(unsigned)-1;
 const unsigned mask=1<< s; 
 cout<<setw(7)<<x<<"=";
 for(unsigned i=1;i<=s+1;i++)
 {cout<<(x & mask ? '1':'0');
 x<<=1; 
 if(i%8==0)
 cout<<' ';
 }
 cout<<endl;
 getch();
 }
 //---------------------------------------------------------------------------
Вопрос вот в чем:

const unsigned s=8*sizeof(unsigned)-1; //как я понял один байт это 8 битов но почему есть -1, может ли бить другое число на месте 8-ки.


const unsigned mask=1<< s; //почему здесь есть сдвиг и зачем он нужен, и что выполняет переход к битам


x<<=1; //зачем опять сдвиг, 1 и знак =
if(i%8==0) //зачем нужно вычисление остатка здесь и проверка равно 0.

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