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

Битовые операции - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
KupueIIIKo
2 / 2 / 0
Регистрация: 15.09.2010
Сообщений: 127
12.05.2011, 09:48     Битовые операции #1
Есть число в двоичной системе, например "01000001", рядом с единицами надо заменить нули на единички! то есть должно получится например "11100011"! Помогите нашкодить!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2011, 09:48     Битовые операции
Посмотрите здесь:

Битовые операции C++
Битовые операции, битовые поля. C++
C++ Битовые операции
C++ Битовые операции
битовые операции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
13.05.2011, 10:33     Битовые операции #21
Цитата Сообщение от KupueIIIKo
strlen - у меня нету такой команды
strlen() - это функция из string.h
во всех C она должна быть

я уже это превратил в другую функцию, откомментил
convert_bits.c
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* заменяет нули возле единиц единицами
   00001000 -> 00011100
 */
void convert_bits(char *s, int len)
{
    int i;
    
    for (i = 0; i < len; i++)
        if (s[i] == 1) {
            if (i > 0 && s[i - 1] != 1)
                s[i - 1] = 0;
            if (i + 1 < len && s[i + 1] != 1) {
                s[i + 1] = 1;
                i++;
            }
        }
}
Добавлено через 4 минуты
вот представь, что тебе надо проделать это с 27'ю битами
ты создаёшь массив, заполняешь его 27'ю битами и вызываешь функцию conver_bits(arr, 27);
при этом тебе не надо думать про кратность этих битов, сколько там байт получается и так далее
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2011, 10:54     Битовые операции
Еще ссылки по теме:

Битовые операции и операции смещения языка С C++
Битовые операции C++
C++ Битовые операции

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

Или воспользуйтесь поиском по форуму:
KupueIIIKo
2 / 2 / 0
Регистрация: 15.09.2010
Сообщений: 127
13.05.2011, 10:54  [ТС]     Битовые операции #22
Цитата Сообщение от mimicria Посмотреть сообщение
Ну тож выложу, как вариант
Очень помогло в другом кодинге! Большое спасибо!

accept спасибо большое! твой код как и mimicria пригодился в другой части)

Добавлено через 4 минуты
когда пишешь на мк там не совсем чистый с! поэтому кому если пригодится для программирования мк фирмы atmel! Есть такая возможность как
C
1
2
#define sbi(reg, bit) (reg|= (1<<bit)) //установить бит регистра reg
#define sbni(reg, bit) (reg|= (0<<bit)) //стереть бит регистра reg
если писать по прямой то он и представляет как число переведенное в двоичное число, если юзать дефайн, то получается почему то обращение к определеной ножке мк! ну а там уже я сделал просто
i++; i--
Yandex
Объявления
13.05.2011, 10:54     Битовые операции
Ответ Создать тему
Опции темы

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