Прям вспомнил 1989 год уроки программирования и работы с логическими функциями на калькуляторе мк-84... Позволяли экономить кучу его ресурса и выполнять сложные вычисления за 105 шагов программы с 15 переменными и 4 стековыми переменными которые сейчас недоступны для понимания многих выпускников с отметкой ЕГЭ
3:05 "записать нужное состояние в конкретный бит числа". Был рассмотрен пример записи 1. А с нулём, похоже, так не пройдёт (маска будет нулевая и нужный бит не обнулится).
Для установки нужного бита (4-го, как в примере) в ворде в значении TRUE достаточно такой манипуляции: xIn := TRUE; iOffset := 4; wOutput := SHL(BOOL_TO_WORD(xIn) , iOffset) OR wInput; или я что-то упускаю? С какой целью делается инверсия и логическое умножение?
В вашем варианте показано, как сделать ворд, где все биты кроме четвертого нулевые. В нашем примере - как поменять значение четвертого бита в заполненной маске с сохранением значений остальных битов
Для того, чтобы показывать что-то, что будет "очем в какой-то облости", нужно рассказать про элементы, которыми мы будем пользоваться. Вы вполне можете предложить, в какой области применение тех или иных элементов вам было бы интересно, и мы постараемся это учесть в одних из следующих видео. Но порядок от общего к частному и от простого к сложному в любом случае будет сохраняться)
@@ДенисМагдич-в2о не правда :) в школе вы учите сначала цифры, потом числа, потом операции с ними - базу. А потом решаете задачки, складывая яблоки, покупая продукты и требуя сдачу 😉 Так что, все по порядку идём. И хорошо, что требуется реальный пример. Значит на них точно остановимся, но позднее.
А в чем смысл этих двигуль?? Что бы установить 4й бит в 1 я делаю так, al. 3:=1; (нумерация с нуля) Это не по хакерских, да?? Потом узнать состояние можно так stat:=al. 3; или getBit. 3 ; и самое странное в примере узнать состояние нужно посчитать какой, сравнить and, а потом сдвигаем? Так а нафига, если решили двигать, то дигац сразу и сравнивай с 1 всегда. Ну и потом, а что мы выиигрываем напрягая моск? И ещё вопрос не в тему. А почему регистр не использовать старшую часть для записи, младшую для чтения
Спасибо за рассказ!
Прям вспомнил 1989 год уроки программирования и работы с логическими функциями на калькуляторе мк-84... Позволяли экономить кучу его ресурса и выполнять сложные вычисления за 105 шагов программы с 15 переменными и 4 стековыми переменными которые сейчас недоступны для понимания многих выпускников с отметкой ЕГЭ
3:05 "записать нужное состояние в конкретный бит числа". Был рассмотрен пример записи 1. А с нулём, похоже, так не пройдёт (маска будет нулевая и нужный бит не обнулится).
Пользуйтесь функцией putbit, 3:39
Для установки нужного бита (4-го, как в примере) в ворде в значении TRUE достаточно такой манипуляции: xIn := TRUE; iOffset := 4; wOutput := SHL(BOOL_TO_WORD(xIn)
, iOffset) OR wInput; или я что-то упускаю? С какой целью делается инверсия и логическое умножение?
В вашем варианте показано, как сделать ворд, где все биты кроме четвертого нулевые. В нашем примере - как поменять значение четвертого бита в заполненной маске с сохранением значений остальных битов
@@Vasiliy_Sh понял, спасибо. У меня в прикладной задаче действительно word каждый раз по новой собирается.
Чересчур бегло вышло. Надеюсь, что эти ролики за год соберутся в большое и связное повествование.
Да, мы тоже надеемся))
Лучшеб показалбы практическое применение в какой-то облости . А это не очем ,просто описание функций ,а толку от этого?
Совершенно верно. Без практических примеров нет смысла. Можно и в справке все почитать.
Для того, чтобы показывать что-то, что будет "очем в какой-то облости", нужно рассказать про элементы, которыми мы будем пользоваться. Вы вполне можете предложить, в какой области применение тех или иных элементов вам было бы интересно, и мы постараемся это учесть в одних из следующих видео. Но порядок от общего к частному и от простого к сложному в любом случае будет сохраняться)
@@Vasiliy_Sh я сторался обходить эти блоки и решал задачу мне в привычной 10 значной системе.
@@ДенисМагдич-в2о не правда :) в школе вы учите сначала цифры, потом числа, потом операции с ними - базу. А потом решаете задачки, складывая яблоки, покупая продукты и требуя сдачу 😉 Так что, все по порядку идём. И хорошо, что требуется реальный пример. Значит на них точно остановимся, но позднее.
Не заморачивайтесь. Просто отметьте что такая возможность есть. А как её применить, возможно, поймёте потом, когда другие функции разберёте
А в чем смысл этих двигуль?? Что бы установить 4й бит в 1 я делаю так, al. 3:=1; (нумерация с нуля)
Это не по хакерских, да??
Потом узнать состояние можно так stat:=al. 3; или getBit. 3 ; и самое странное в примере узнать состояние нужно посчитать какой, сравнить and, а потом сдвигаем? Так а нафига, если решили двигать, то дигац сразу и сравнивай с 1 всегда.
Ну и потом, а что мы выиигрываем напрягая моск?
И ещё вопрос не в тему. А почему регистр не использовать старшую часть для записи, младшую для чтения
В logic нет текстового языка, так что al.3:=1; не прокатит) а если досмотрели до конца, то там как раз есть готовые блоки типа getbit и setbit.