Значит есть b:byte;
Как установить n-й бит в значение х ?
Либо какими командами ассемблера это можно сделать ?
asm
???
???
end;
Битовые операции |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
Битовые операции |
Scorp_Freeman |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Сергей Репутация: 0 |
Значит есть b:byte;
Как установить n-й бит в значение х ? Либо какими командами ассемблера это можно сделать ? asm ??? ??? end; |
мисс_граффити |
Сообщение
#2
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
asm asm смотря чему равен х... то есть, например, 110 and 011 даст 010 (установили первый бит в 0) 001 or 101 даст 101 (установили первый в 1) -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
hardcase |
Сообщение
#3
|
code warrior Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: 8 |
-------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
Scorp_Freeman |
Сообщение
#4
|
Пионер Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Сергей Репутация: 0 |
Цитата смотря чему равен х... чему он будет равняться я не знаю, он будет постоянно меняться, а также номер бита который надо будет устанавливать также будет меняться. Мне нужно будет в байт к примеру ???????? на место второго бита поставить сооветствующий бит другого байта 000000?0. Если бы у меня второй байт был 111111?1 я бы просто использовал AND ( |
hardcase |
Сообщение
#5
|
code warrior Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: 8 |
чему он будет равняться я не знаю, он будет постоянно меняться, а также номер бита который надо будет устанавливать также будет меняться. Мне нужно будет в байт к примеру ???????? на место второго бита поставить сооветствующий бит другого байта 000000?0. Если бы у меня второй байт был 111111?1 я бы просто использовал AND ( b1 := b1 or (b2 and (1 shl n)) добавил: у меня биты нумеруются с нуля. Сообщение отредактировано: hardcase - -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
Scorp_Freeman |
Сообщение
#6
|
Пионер Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Сергей Репутация: 0 |
Цитата Как установить n-й бит в значение х ? Извените, я кажется ошибся в формулировке вопроса) "Установить" не в смысле записать 1 а поместить туда значение бита(0 либо 1) |
hardcase |
Сообщение
#7
|
code warrior Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: 8 |
Извените, я кажется ошибся в формулировке вопроса) "Установить" не в смысле записать 1 а поместить туда значение бита(0 либо 1) Однако переклинило...... mask := (1 shl n); bit := (b2 and mask); if( boolean(bit) ) then b1 := b1 or mask; else b1 := b1 and not mask; Сообщение отредактировано: hardcase - -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
hiv |
Сообщение
#8
|
Профи Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: 11 |
у меня биты нумеруются с нуля. И у меня с нуля procedure changebit(var x:byte;n:byte;bit:byte); x - исходная переменная n - номер бита bit - во что устанавливаем 0 / 1 -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
Scorp_Freeman |
Сообщение
#9
|
Пионер Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Сергей Репутация: 0 |
|
мисс_граффити |
Сообщение
#10
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
сорри... не удержалась.
bit:byte -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
hardcase |
Сообщение
#11
|
code warrior Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: 8 |
Нда пока редактил решение, тут уже всё ответили =))
-------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
Scorp_Freeman |
Сообщение
#12
|
Пионер Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Сергей Репутация: 0 |
спасибо !!! раздуплил наконец то ))
|
Текстовая версия | 11.01.2025 7:51 |