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

Поразрядные операции - C++

Восстановить пароль Регистрация
 
Maxim_Kam
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 9
18.11.2010, 14:44     Поразрядные операции #1
Есть 16-е число, например N=0xC5D612F7, помогите убрать единицу в старшем бите у C и F, используя поразрядные операции на языке Си. Я даже не представляю, как это сделать. Подскажите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2010, 14:44     Поразрядные операции
Посмотрите здесь:

Поразрядные операции C++
поразрядные операции C++
поразрядные операции C++
C++ Поразрядные операции
C++ Поразрядные операции
Поразрядные операции C++
C++ Поразрядные операции
Поразрядные операции C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
18.11.2010, 16:16     Поразрядные операции #2
C5 D6 12 F7 - это байты

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
int main(void)
{
    unsigned long n = 0xC5D612F7;
 
    n &= ~(1 << 31); /* убрали у C5 старший бит */
    n &= ~(1 << 7); /* убрали у F7 старший бит */
 
    printf("%lX" "\n", n);
    
    n = 0xC5D612F7;
    n &=  ~(1 << 31) & ~(1 << 7); /* одним оператором */
    
    printf("%lX" "\n", n);
    
    return 0;
}
Код
[guest@localhost tests]$ ./t
45D61277
45D61277
[guest@localhost tests]$
Yandex
Объявления
18.11.2010, 16:16     Поразрядные операции
Ответ Создать тему
Опции темы

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