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

Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса» - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.72
top4er
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
29.11.2011, 16:09     Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса» #1
Сама задача.
Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса» старшей и младшей тетрад, а младшую тетраду – результатом операции «штрих Шеффера» старшей и младшей тетрад исходного байта.

В С++ не очень хорошо шарю,но,как мне кажется, здесь решается с помощью условия. Надо без использования массива.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2011, 16:09     Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса»
Посмотрите здесь:

Заменить отрицательные элементы результатом деления на 3 C++
C++ Удалить из каждого байта строки первый (старший) бит.
Не состыковка между результатом программы и результатом Excel C++
C++ Переставить биты в обратном порядке для каждого байта
Обработка элементов файла.Каждый отрицательный элемент в файле заменить результатом его целочисленного деления на 3 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
29.11.2011, 17:29     Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса» #2
используйте битовые операции ( |, &, ~, ^ ) и маски
top4er
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
29.11.2011, 17:46  [ТС]     Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса» #3
Цитата Сообщение от M__A__K Посмотреть сообщение
используйте битовые операции ( |, &, ~, ^ ) и маски
честно,я просто не знаю как именно выделить старшую и младшую тетраду
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
29.11.2011, 17:52     Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса» #4
C++
1
2
3
char var;                         
char h_tetr = ( var & 0xf0 ) >> 4;
char l_tetr = var & 0x0f;
var - число (байт)
h_tetr - старшая тетрада
l_tetr - младшая тетрада
top4er
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
29.11.2011, 18:01  [ТС]     Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса» #5
Цитата Сообщение от M__A__K Посмотреть сообщение
C++
1
2
3
char var;                         
char h_tetr = ( var & 0xf0 ) >> 4;
char l_tetr = var & 0x0f;
var - число (байт)
h_tetr - старшая тетрада
l_tetr - младшая тетрада
Спасибо огромнейшее!!
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
29.11.2011, 18:03     Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса» #6
top4er, пожалуйста
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
29.11.2011, 18:07     Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса» #7
Цитата Сообщение от M__A__K Посмотреть сообщение
char h_tetr = ( var & 0xf0 ) >> 4;
Можно без битового "И" обойтись, просто смещения хватит. Старшие байты обнулятся, младшие будут замещены на старшие при сдвиге.

И идеалогически верным было бы все же использовать беззнаковый char для битовый операций.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2011, 18:09     Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса»
Еще ссылки по теме:

C++ Закодировать файл. Взять 7 байт. Первый бит каждого байта переместить в 8 байт
Битовое представление каждого байта C++
C++ Как инвертировать младшую тетраду

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

Или воспользуйтесь поиском по форуму:
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
29.11.2011, 18:09     Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса» #8
fasked, да, вы правы
Yandex
Объявления
29.11.2011, 18:09     Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса»
Ответ Создать тему
Опции темы

Текущее время: 20:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru