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

Битовые операции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Решение шахматного вопроса http://www.cyberforum.ru/cpp-beginners/thread180843.html
Помогите с решением пожалйуста! На шахматной доске стоят белые короли. Вася хочет поставить на доску несколько черных фигур так, чтобы никакую из них короли не били (не стояли в клетках, граничащих хотя бы вершиной). Какое наибольшее количество фигур может поставить Вася? На вход подается в строке без разделителей список клеток, в которых стоят короли (в шахматной аннотации, используются...
C++ командная строка Здравствуйте! вопрос такой: как задать командную строку, чтобы отделить загружаемое приложение от параметров кавычками: "*.exe" nnn. т.е. как символ " записать в переменную. Делаю так '"' если он идет первым то выходит ошибка - например '"'+"exe"+'"'+" nnn" - если этот символ стоит не первым то вроде ошибки нет, но тогда командная строка без первых ковычек получается неправильной. Заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread180842.html
C++ Вставить в вектор новый элемент перед элементом с заданным индексом
Здравствуйте. У меня следующая проблема: Мне в программе нужно в вектор вставить в определенное место элемент. Лучше всего мне походит для этих целей естественно std::Vector::insert(). Но использовать ее не получается потому, что я не пойму каким образом я должен указать элемент перед котороым мне нужно сделать вставку. Код работает только если я указываю ...
Найти все правильные идентификаторы Си в произвольном текстовом файле C++
Программа, которая отыскивает и выводит на печать все правильные идентификаторы языка С в произвольном текстовом файле.
C++ Как вернуть массив http://www.cyberforum.ru/cpp-beginners/thread180826.html
Можно ли вернуть массив через возвращаемое значение? Если нет, то как можно сделать вывод массива в main?
C++ Стек задание: Требуется реализовать структуру данных стек при помощи массива, размер массива константый, В операциях вставки и удаления осуществить проверки на переполнение и отсутствие данных и ввести соответствующие сообщения об ошибках. вот мой код программа ошибок не выводит, т е как бы работает, но при вставке и удаление лагает #include "stdafx.h" #include "iostream" #include... подробнее

Показать сообщение отдельно
Lusa
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 14

Битовые операции - C++

24.10.2010, 17:02. Просмотров 1534. Ответов 0
Метки (Все метки)

Дали задание на побитовые логические операции и операции сдвига, а я в них ничего не понимаю.
Помогите пожалуйста решить эти задачи, очень надо!
Во вложенном файле 3.doc условие задач с примером выполнения.

Вот условия задач:

Задача 1:
Составить две программы, первая из которых вводит составные части структуры данных, приведенной в Вашем варианте индивидуального задания, и формирует из них заданную упакованную структуру. Вторая программа вводит упакованную структуру как 16-ричное число и выводит значения отдельных ее составных частей.

Элемент списка безопасности объекта в вычислительной системе представляется в виде:

разряда 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
Значение U U U U U U U U R W E 0 0 0 0 X
где:
U..U - идентификатор пользователя
R - Право читать
W - Право писать
E - Право выполнять программный код
X - явный запрет доступа


Задача 2:
Написать блоки перевода числа из десятичного в двоичный и обратно.


Задача 3:
Написать блоки преобразования числа в код Грея и обратно (результатом программы должны являться 2 таблицы с такими столбцами:
в первой: десятичное число, его двоичный эквивалент, эквивалент в коде Грея,
во второй: число в коде Грея, его двоичный эквивалент, его десятичный эквивалент
Примечание: теорию по коду Грея смотри в приложении.



Приложение: Код Грея
Код Грея, называемый также рефлексным (отражённым) двоичным кодом - одна из наиболее известных непозиционных систем счисления применяемых в вычислительной технике. Этот код строится из двоичных цифр таким образом, что соседние числа в нём отличаются всегда только в одном разряде. Кодов с такой же характеристикой много, но для кода Грея имеется простой алгоритм перевода чисел в двоичный позиционный код и обратно.
Для примера рассмотрим таблицу первых восми кодов Грея:
N Двоичный код Код Грея
0 000 000
1 001 001
2 010 011
3 011 010
4 100 110
5 101 111
6 110 101
7 111 100
Таблица 1 - Код Грея

Младший разряд в последовательности чисел в коде Грея принимает значения 0 и 1, затем следующий старший разряд становится единичным и младший разряд принимает свои значения уже в обратном порядке (1, 0). Этим и объясняется название кода - "отражённый". Соответственно, два младших разряда принимают значения 00, 01, 11, 10, а затем, при единичном следующем старшем разряде, те же значения в обратном порядке (10, 11, 01, 00).
Алгоритм перевода чисел в коде Грея в позиционный код прост: каждый разряд в позиционном коде равен сумме по модулю 2 этого и всех более старших разрядов в коде Грея. На С этот код выглядит следующим образом:
C++
1
for (unsigned i = 1; i < 32; i <<= 1) v ^= (v >> i)
До выполнения этого кода переменная v содержала число в коде Грея, после - в позиционном коде.
Перевод из позиционного кода в код Грея ещё проще: каждый разряд в коде Грея равен сумме по модулю 2 этого и следующего старшего разряда в позиционном коде. На C это реализуется следующим выражением:
C++
1
v ^ (v>> 1)
Вложения
Тип файла: doc 3.doc (69.5 Кб, 73 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru