powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как убрать биты
11 сообщений из 11, страница 1 из 1
Как убрать биты
    #32436844
mixolap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем дело: после каждых пяти единиц в последовательности стоит нолик, так вот, как мне от этого нолика избавиться? Например, есть: 11001011111001, надо получить 1100101111101
...
Рейтинг: 0 / 0
Как убрать биты
    #32436914
Tracer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А для нафига ?
...
Рейтинг: 0 / 0
Как убрать биты
    #32436927
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
действительно ?
зачмэ ?

i_i
(';')
(V),(V),,

JS
...
Рейтинг: 0 / 0
Как убрать биты
    #32437138
Void!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Копируешь
2. Оригинал сдвигаешь влево пока нужный нолик не станет в старший разряд а потом назад (так обнулил биты левее нужного нолика)
3. Копию сдвигаешь вправо пока нужный нолик не станет в младший разряд а потом назад но на одну позицию меньше(так обнулил биты правее нужного нолика)
4. Делаешь OR копии с оригиналом и несешь мне пиво
...
Рейтинг: 0 / 0
Как убрать биты
    #32437160
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно и проще.... если необходимо именно второй бит поправить, то прибавь к своему числу 4 и не мучайся....
...
Рейтинг: 0 / 0
Как убрать биты
    #32437291
rst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
int mask=0x3E  ;//( 111110 )
int changebit= 1 ;
int src=0x3E0;
while (mask> 0 )
{
if ((mask&src)==mask)
src=src|changebit;
mask=mask<< 1 ;
changebit=changebit<< 1 ;
};

если использовать asm то
с bsf можно еще похитрить
...
Рейтинг: 0 / 0
Как убрать биты
    #32437402
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпока нужный нолик не станет в старший разряд
И как это проверить?

Как вообще отличить нужный нолик, от ненужного? :)
...
Рейтинг: 0 / 0
Как убрать биты
    #32437433
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 rst, у тебя в коде ноль заменяется, а не выкидывается (если mixolap именно этого хотел)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
int mask=0x3E  ;//( 111110 )
int changebit= 1 ;
int maskshift= 0 ;
int right;
int src=0x3E0;
while (mask> 0 )
{
if ((mask&src)==mask)
{
right = src & maskshift; //запомнили хвост
src>>= 1 ;//убили лишний бит и испортили хвост
src&=~maskshift;//убрали неправильный хвост
src|=right;//приделали правильный
break;
}
mask=mask<< 1 ;
changebit=changebit<< 1 ;
maskshift = maskshift<< 1 + 1 ;
};


может можно и проще...

И всё-таки вопрос, зачем нужна такая операция, если не секрет? :)
...
Рейтинг: 0 / 0
Как убрать биты
    #32437460
Void!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CEMb
И как это проверить?

Как вообще отличить нужный нолик, от ненужного? :)

Сдвигаешь в цикле по 1-му биту и считаешь количество единиц в старшем разряде обнуляя счетчик если встретиш 0.
Как только досчитаешь до 5 сдвигать продолжаешь пока в старшем разряде не появится 0 - вот ты его и нашел!

дальше по тексту....
...
Рейтинг: 0 / 0
Как убрать биты
    #32438651
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эпилог: у меня сёдня день рожденья. Поэтому, если что напишу неправильно - мы уже отметили(амы уже отметили).

авторсчитаешь количество единиц в старшем разряде
Читать количество единиц в старшем разряде времяёмкое занятие. Но по логике - согласен.
...
Рейтинг: 0 / 0
Как убрать биты
    #32438666
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эпилог: у меня сёдня день рожденья. Поэтому, если что напишу неправильно - мы уже отметили(амы уже отметили).

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


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