IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Битовые операции
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Значит есть b:byte;
Как установить n-й бит в значение х ?

Либо какими командами ассемблера это можно сделать ?

asm
???
???
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


             asm
mov AL,f
or c,AL
end;


             asm
mov AL,f
and c,AL
end;

смотря чему равен х...

то есть, например, 110 and 011 даст 010 (установили первый бит в 0)
001 or 101 даст 101 (установили первый в 1)


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Цитата

смотря чему равен х...



чему он будет равняться я не знаю, он будет постоянно меняться, а также номер бита который надо будет устанавливать также будет меняться.

Мне нужно будет в байт к примеру ???????? на место второго бита поставить сооветствующий бит
другого байта 000000?0. Если бы у меня второй байт был 111111?1 я бы просто использовал AND (
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Цитата(Scorp_Freeman @ 13.04.2007 19:53) *

чему он будет равняться я не знаю, он будет постоянно меняться, а также номер бита который надо будет устанавливать также будет меняться.

Мне нужно будет в байт к примеру ???????? на место второго бита поставить сооветствующий бит
другого байта 000000?0. Если бы у меня второй байт был 111111?1 я бы просто использовал AND (

b1 := b1 or (b2 and (1 shl n))

добавил: у меня биты нумеруются с нуля.

Сообщение отредактировано: hardcase -


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Цитата(hardcase @ 13.04.2007 18:57) *

b1 := b1 or (b2 and (1 shl n))


если так написать,как мне кажется, то тогда в первом байте изменяется не только тот бит который мне надо, а и другие , значение которых должно быть неизменным
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 6.05.2024 1:43
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name