Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2012, 00:19   #1
ktulhobraz
 
Регистрация: 07.11.2012
Сообщений: 6
Вопрос "Вычленить" из числа отдельные байты (С/С++)

Итак, суть проблемы такова: имеется число формата unsigned int. Нужно из него "вытащить" каждый байт, провести над ним кое какие операции (допустим применить функцию function()) и запихать обратно на свое место, дабы получить новое число в переменной. Суть в том, что ни массивы, ни указатели использовать нельзя, только побитовые операции. Интересует, собственно, как это можно реализовать. Если можно, то попросил бы с комментариями, ибо в Си полный ноль
ktulhobraz вне форума Ответить с цитированием
Старый 23.11.2012, 00:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
int i=123;
char c[sizeof(int)];
memcpy(&c,&i,sizeof(int));
И работай с массивом "с" как с массивом байт.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2012, 05:32   #3
ktulhobraz
 
Регистрация: 07.11.2012
Сообщений: 6
Печаль

Нельзя массивы использовать тут, нужно без них как-то
ktulhobraz вне форума Ответить с цитированием
Старый 23.11.2012, 09:08   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Делаем побитовый сдвиг направо так, чтоб нужный нам байт оказался в младших разрядах, потом маскируем через AND убираем лишнее.
waleri вне форума Ответить с цитированием
Старый 23.11.2012, 09:35   #5
masax
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 248
По умолчанию

bool function getBit(unsigned int i, int n)
{
return (bool)((i >> n)&1);
}

спасибо, waleri
опечатался )
Контакты
skype, почта: bm@kwax.ru

Последний раз редактировалось masax; 23.11.2012 в 14:37.
masax вне форума Ответить с цитированием
Старый 23.11.2012, 09:52   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

наверно >>

А если двигать налево, тогда 1 << n
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
PCHAR строка с разделителями #13#10. Как вычленить отдельные "подстроки" EdNovice Общие вопросы Delphi 1 17.04.2007 11:42