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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2015, 22:25   #1
ъВася
Новичок
Джуниор
 
Регистрация: 01.02.2015
Сообщений: 1
По умолчанию младшую тетраду старшего байта целочисленной переменной

Привет. Помогите пожалуйста.

Разряды 2, 7, 11, 13 целочисленной переменной а должны образовать младшую тетраду старшего байта целочисленной переменной b. Остальные разряды переменной b должны являться инвертированным значением соответствующих разрядов переменной а.
ъВася вне форума Ответить с цитированием
Старый 04.02.2015, 11:30   #2
magnet
Пользователь
 
Регистрация: 02.02.2015
Сообщений: 24
По умолчанию

Можно так:

Код:
unsigned int func(unsigned int a)
{
    unsigned int b = 0;
    b=~a;
    
    unsigned int c = b<<8;
    c >>= 8;
    
    unsigned int higherTetrad = b>>32-4;
    higherTetrad <<= 32-4;
    
    c  |= higherTetrad; 
    
    unsigned int lowerTetrad = 0;
    
    lowerTetrad |= (a & (unsigned int)pow(2,13) > 0)? 1 : 0;
    lowerTetrad<<=1;
    lowerTetrad |= (a & (unsigned int)pow(2,11) > 0)? 1 : 0;
    lowerTetrad<<=1;
    lowerTetrad |= (a & (unsigned int)pow(2,7) > 0)? 1 : 0;
    lowerTetrad<<=1;
    lowerTetrad |= (a & (unsigned int)pow(2,2) > 0)? 1 : 0;
    
    lowerTetrad<<=32-8;
    
    unsigned int result = c | lowerTetrad;
    return result;
}

Последний раз редактировалось magnet; 04.02.2015 в 12:49.
magnet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
очистка целочисленной переменной Деник C# (си шарп) 5 23.12.2013 19:37
Работа с простой переменной. алгоритмы целочисленной арифметики. Паскаль Ann2807 Помощь студентам 2 18.11.2012 12:48
Выделить из байта младшую тетраду SERG1980 Помощь студентам 3 21.08.2011 11:52
Получение младшего и старшего байта числа. spamer Общие вопросы Delphi 10 17.04.2009 15:43
взятие старшего и младшего байта Djaconda Общие вопросы Delphi 2 29.09.2008 09:25