С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Определить, что старший байт числа равен значению переменной с - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Линейная интерполяция http://www.cyberforum.ru/cpp-beginners/thread1129112.html
Как правильно написать программу линейной интерполяции? С чего начать подскажите?
C++ Определить в символьном массиве номер вхождения символа вводимого пользователем с клавиатуры Определить в символьном массиве номер вхождения символа вводимого пользователем с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread1129093.html
C++ Прокомментировать код
что означают строчки начиная с int k =-1; #include "iostream" #include "math.h" using namespace std; int main () { const int n = 10; int a; for ( int i=0; i<n; i++) {
Реализовать комбинированный способ организации таблицы идентификаторов C++
помогите написать программу по методичке на C++ Требуется разработать программу, реализующую комбинированный способ организации таблицы идентификаторов. Для организации таблицы используется...
C++ Перевод из Pascal на C++ http://www.cyberforum.ru/cpp-beginners/thread1129058.html
Помогите перевести программу из Pascal на С++ program lab; const N=30; var A:array of real; i,k:integer; S:real; begin writeln('...:');
C++ Подсчет символов в строке. Программа не компилируется Всем привет! Помогите решить эту задачу: 1) Имя передаётся через командную строку 2) Программа должна подсчитывать количество: 1) символов; 2) символов без пробелов; 3) букв; 4) слов; 5)... подробнее

Показать сообщение отдельно
ValeryS
Модератор
6729 / 5138 / 485
Регистрация: 14.02.2011
Сообщений: 17,259
26.03.2014, 11:36
Цитата Сообщение от BonaBerry Посмотреть сообщение
так как при инвертации края нам не сохранить, сам понимаешь
не понимаю
смотри нужно инвертировать два первых байта в бите ( так для примера чтобы много не расписывать)
0xFF^0x03 =0xFC
1111 1111
^
0000 0011
-----------
1111 1100

0x00^0x03 =0x03

0000 0000
^
0000 0011
-----------
0000 0011

0x55^0x03=0x56

0101 0101
^
0000 0011
----------
0101 0110

как видишь инвертируются два младших бита, 6 старших остаются как были
исключающая ИЛИ с 0 оставляет бит как есть с 1 инвертирует

Цитата Сообщение от BonaBerry Посмотреть сообщение
А суть упражнения как раз, задействовать побитовые логические операции.
исключающая ИЛИ является такой же битовой операцией как И и ИЛИ


у нее есть еще интересная особенность если применить два раза то результат равен исходному числу

например
0x05^0x03=0x06

0x06^0x03=0x05;

используется в простейших шифровшиках/дешифровшиках

и еще один фокус поменять две переменных местами не использую третью

C++
1
2
3
a=a^b;
b=a^b;
a=a^b;
возьмем например те же 5 и 3 a=5 b=3
a=a^b; a=5^3=6;
b=a^b; b=6^3=5;
a=a^b; a=6^5=3;
как видишь поменялись местами
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.