|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.09.2013, 16:20 | #1 |
Пользователь
Регистрация: 06.06.2013
Сообщений: 28
|
Регистры
Здравствуйте, подскажите пожалуйста, как установить в ноль нужный разряд регистра?
|
16.09.2013, 16:37 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
сделать логическое "И" (операция AND) с маской, где все биты равны единице, кроме того, который нужно сбросить в ноль.
p.s. не исключаю, что в C есть специальные операции работы с битами, в этом случае, конечно, мой совет не совсем подходит... |
16.09.2013, 16:43 | #3 |
Пользователь
Регистрация: 06.06.2013
Сообщений: 28
|
ну вот например мне нужно сделать первый бит нулевым. и записать тогда так: A&=~(1<<1)
? |
16.09.2013, 22:02 | #4 |
Форумчанин
Регистрация: 05.04.2012
Сообщений: 134
|
Код:
|
16.09.2013, 22:21 | #5 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
a^a, самое простое. Исклюючающее ИЛИ, с арифмектическим регистром.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
16.09.2013, 22:45 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Smitt&Wesson, неверно. Ваш xor обнулит полностью все разряды, а TC нужно обнулить только один разряд!!
Nuklon, +1 |
17.09.2013, 06:15 | #7 |
Пользователь
Регистрация: 06.06.2013
Сообщений: 28
|
Спасибо за ответы)
|
17.09.2013, 07:41 | #8 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Какой именно? Для этого можно применить команду И. 0xfe, обнулит младший разряд регистра.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
17.09.2013, 10:40 | #9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Smitt&Wesson, логический "and" с 0xfe обнулит не только младший (нулевой байт), но и все старшие (ведь нигде не сказано, что целое число занимает один байт!!
впрочем, это всё уже неважно, в пост #4 Nuklon уже дал ответ (нужно логически инвертировать (бинарный "not") целое число, содержащее единицу в нужном разряде (в данном случае, в нулевом бите). И полученную маску исплользовать по "and"). Думаю, что продолжать обсуждение бессмыслено, тему можно закрывать.. |
17.09.2013, 13:48 | #10 |
Пользователь
Регистрация: 06.06.2013
Сообщений: 28
|
а если мне вот такой код 000010 нужно преобразовать в такой 000001, тогда как?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Регистры | Волк | Microsoft Office Excel | 9 | 08.04.2009 16:07 |
Регистры | Манжосов Денис :) | Помощь студентам | 8 | 28.07.2008 12:48 |
Регистры | RealSHELS | Общие вопросы Delphi | 3 | 28.03.2008 18:56 |
Регистры | Elm0 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 13 | 10.02.2008 19:49 |