Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2018, 10:40   #1
Bartimeus777
 
Регистрация: 25.03.2018
Сообщений: 3
По умолчанию Реализуйте с помощью логических операций вставку заданного значения (0 или 1) в любой бит байта со сдвигом влево и...

Реализуйте с помощью логических операций вставку заданного значения (0 или 1) в любой бит байта со сдвигом влево и потерей крайнего бита. Как ассемблерная вставка в C++. И пожалуйста, поясните что происходит в строчках кода.
Bartimeus777 вне форума Ответить с цитированием
Старый 25.03.2018, 15:45   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Код:
shl al,1     ; Shift-Left - сдвиг байта(AL) на 1 влево, с потерей ст.бита
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 25.03.2018, 22:52   #3
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 347
По умолчанию

Долго не думал, может и неправильно
Код:
Data // Исходный массив бит
B         = 1 << N-1 // Вставляемый бит (не обязательно, если ноль)

Begin     = Data << 1
  End     = Data
MaskBegin = 11111111 << N+1
MaskEnd   = not MaskBegin >> 1
Begin     = Begin and MaskBegin
End       = End   and MaskEnd

Data = Begin and B and End
СтудПом вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
- Реализуйте вычисление заданного выражения как ассемблерную вставку в программе на языке высшего уровня ( С++ ). Assembler Ярослав777 Помощь студентам 11 19.11.2016 22:25
Перегрузка поразрядных логических операций Nickolay0512 Общие вопросы C/C++ 1 27.10.2014 17:24
Реализуйте афинную систему подстановок Цезаря. При A=12, B=7. в любой программе программирования.. mariy337 Помощь студентам 2 15.01.2013 21:07
написать программу, которая должна печатать слово, полученное из исходного циклическим сдвигом его букв на N символов влево Наталья1991 Паскаль, Turbo Pascal, PascalABC.NET 10 16.05.2012 00:11
Калькулятор логических/арифметических операций doojkee Общие вопросы C/C++ 6 08.04.2012 19:28