Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Поразрядные операции c++ / 3 сообщений из 3, страница 1 из 1
10.12.2013, 12:05
    #38495231
Vanya21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поразрядные операции c++
Есть 16-ое число 0x12345678
И мне нужно изменить k(нумерация идёт справа налево) цифру числа на другую цифру используя только поразрядные операции
Например k=3;ch=9
Получаем 0x12345978
P.S. второй день мучаюсь не получается
Пробовал так
Код: plaintext
1.
n = n | (ch<<k*4);
...
Рейтинг: 0 / 0
10.12.2013, 12:30
    #38495296
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поразрядные операции c++
Vanya21,

а обнулять соотв цифру кто будет?
...
Рейтинг: 0 / 0
10.12.2013, 12:45
    #38495345
z
z
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поразрядные операции c++
угу, например так:
Код: plaintext
1.
n = (n & ~(0xF<<(k<<2))) | (ch<<(k<<2));


только он поменяет 3-ю цифру начиная с нулевого индекса, т.е. будет 0x12349678. если надо с единички, то k-1 в помощь
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Поразрядные операции c++ / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]