Перевод бинарной строки в число

Ответить
smol
Рядовой
Сообщения: 62
Зарегистрирован: 16 ноя 2017, 18:25

Перевод бинарной строки в число

Сообщение smol »

Привет Всем. Чей то никак мысль не идет, надо перевести строку в бинарном виде пример 01110000 в число. Как то все громоздко получается, может у кого есть идеи.
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Перевод бинарной строки в число

Сообщение Naladchik »

1. Разбить на символы, посимвольное сравнение и далее суммирование. 2 в нулевой степени + 2 в первой + 2 во второй и т.д.
2. Оформить в пользовательский блок.
[spoiler]
555.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64. FLProg Portable.
Изображение
smol
Рядовой
Сообщения: 62
Зарегистрирован: 16 ноя 2017, 18:25

Перевод бинарной строки в число

Сообщение smol »

была мысль заполнить стек (массив) но вот как потом вытянуть (сложить)
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Перевод бинарной строки в число

Сообщение Sancho »

Есть цикл - используй его....

Отправлено спустя 19 минут 48 секунд:
Пример. Возможны ошибки...
[spoiler]
screenshot_19-09-12_16-32-26.png
[/spoiler]
Например, должно быть - выполнять пока "НЕ равно 0"... А один, первый скачавший, имеет "равно 0"
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

Перевод бинарной строки в число

Сообщение rw6cm »

smol писал(а): 12 сен 2019, 10:46 надо перевести строку в бинарном виде пример 01110000 в число.
[spoiler]
2019_09_12_16_16_32_Window.png
[/spoiler]
Перевод бинарной строки в число.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
smol
Рядовой
Сообщения: 62
Зарегистрирован: 16 ноя 2017, 18:25

Перевод бинарной строки в число

Сообщение smol »

!! Спасибо! :smile9:
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Перевод бинарной строки в число

Сообщение Naladchik »

[ref=#ff8000]rw6cm[/ref],
Не самый удачный вариант.
1. Для полного преобразования требуется 8 программных циклов.
2. Во время преобразования число на выходе постоянно меняется. Запись значения в переменную "число" лучше производить по окончанию преобразования.
3. Если, во время преобразования, изменится бинарная строка, то на выходе будет непредсказуемый результат. Нужен детектор изменения.
4. Да и зачем постоянно преобразовывать одно и тоже число? Опять детектор.
Win10-64. FLProg Portable.
Изображение
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

Перевод бинарной строки в число

Сообщение rw6cm »

[ref]Naladchik[/ref],
Согласен с Вами.
Просто ТС спрашивал
smol писал(а): 12 сен 2019, 15:37 была мысль заполнить стек (массив) но вот как потом вытянуть (сложить)
Как один из вариантов предложил.
К тому же не ясно, от куда и как бинарка будет браться, куда число будет передаваться,
отсюда и нюансов, что добавить/изменить, может быть много.
Также как и вариантов преобразовать бинарную строку в программе флп.
Можно такой вариант.
[spoiler]
2019_09_13_02_20_58_FLProg_5.3.0.png
[/spoiler]
Перевод бинарной строки в число_1.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Перевод бинарной строки в число

Сообщение Naladchik »

[ref=#ff8000]rw6cm[/ref],
Вот этот Ваш вариант конвертации, по моему мнению, наиболее простой и адекватный.
Какой смысл с массивом заморачиваться если нужно просто "...перевести строку в бинарном виде пример 01110000 в число..."?
И еще пару копеек...
[spoiler]
Единственный момент. Имеет смысл заменить "Получение подстроки" на "Получить символ из строки". В этом случае не будут объявляться ненужные переменные, соответственно не будет замусориваться память.
[spoiler]
123.png
456.png
Результат тот же, но промежуточные переменные не требуются , да и работать побыстрее должно.[/spoiler]
Осталось в пользовательский блок завернуть и можно пользоваться.
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64. FLProg Portable.
Изображение
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Перевод бинарной строки в число

Сообщение Sancho »

Ну вот, а мой вариант даже не рассматривают :(
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Перевод бинарной строки в число

Сообщение Naladchik »

[ref=#ff8000]Sancho[/ref],
Sancho писал(а): 13 сен 2019, 08:48 Ну вот, а мой вариант даже не рассматривают
А что там рассматривать, все прозрачно и понятно.
Но пара копеек все равно имеются.
[spoiler]
я бы сделал так:
123.png
Бинарная строка в байт v01_1.flp
1. Преобразование будет выполняться только по изменению входных данных.
2. Длина строки входных данных произвольная от 0 до 16 бит.
3. Ну и декремент надо делать все таки в конце цикла а не в начале.
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64. FLProg Portable.
Изображение
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Перевод бинарной строки в число

Сообщение Sancho »

[ref]Naladchik[/ref], Насколько я помню, адресация/индексация символов в строке - с нуля.
Итого, если их всего восемь, то самый правый, младший, имеет индекс 7, а старший - 0.
В Вашем варианте - обращения будут сначала к 8, которого не существует, а о старшем - забудут.
Поэтому -1 сразу.
Если не прав - поправьте.
Вопрос о частоте обработки не рассматривался вообще, но было учтено кол-во символов, 8. Если другое - предыдущий результат не изменяется.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Перевод бинарной строки в число

Сообщение Naladchik »

[ref=#ff8000]Sancho[/ref],
Sancho писал(а): 13 сен 2019, 11:40...Насколько я помню, адресация/индексация символов в строке - с нуля...
Тут Вы совершенно правы. По поводу декремента я погорячился, его действительно надо ставить первым.
Sancho писал(а): 13 сен 2019, 11:40...Вопрос о частоте обработки не рассматривался вообще...
Ну тут кому как, лично меня напрягает когда выполняется бесполезная работа. Тут же работа в цикле, причем со строковыми данными и времени на работу с ними требуется весьма прилично. Так что использование детектора считаю обоснованным.
Sancho писал(а): 13 сен 2019, 11:40...но было учтено кол-во символов, 8...
Да это уже так, задел на перспективу. Раз уж пошла в ход тяжелая артиллерия типа выполнения плат по условию, работа в цикле то пусть данный алгоритм решает несколько вариантов данной задачи а не один единственный.
[spoiler]
123.png
Бинарная строка в байт v01_2.flp
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64. FLProg Portable.
Изображение
Ответить

Вернуться в «Помогите, а то я "нимагу"»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей