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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.72
top4er
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
#1

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

29.11.2011, 16:09. Просмотров 2278. Ответов 7
Метки нет (Все метки)

Сама задача.
Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса» старшей и младшей тетрад, а младшую тетраду – результатом операции «штрих Шеффера» старшей и младшей тетрад исходного байта.

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

Заменить отрицательные элементы результатом деления на 3 C++
C++ Компактно разместить числа в переменной размером в 3 байта
C++ Удалить из каждого байта строки первый (старший) бит.
Не состыковка между результатом программы и результатом Excel C++
C++ Переставить биты в обратном порядке для каждого байта
Обработка элементов файла.Каждый отрицательный элемент в файле заменить результатом его целочисленного деления на 3 C++
C++ Закодировать файл. Взять 7 байт. Первый бит каждого байта переместить в 8 байт
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 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++ Вывести старшую цифру дробной части и младшую цифру целой части числа
Битовое представление каждого байта C++
C++ Как инвертировать младшую тетраду
Зеркально поменять местами разряды младшего байта каждого числа C++
C++ Каждый отрицательный элемент в массиве заменить результатом его целочисленного деления на 3

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

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

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