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

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

Ответить
smol
Рядовой
Сообщения: 62
Зарегистрирован: 16.11.2017{, 18:25}
Репутация: 0

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

#1

Сообщение smol » 12.09.2019{, 10:46}

Привет Всем. Чей то никак мысль не идет, надо перевести строку в бинарном виде пример 01110000 в число. Как то все громоздко получается, может у кого есть идеи.

Naladchik
Капитан
Сообщения: 823
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 153
Откуда: Новосибирск
Имя: Павел

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

#2

Сообщение Naladchik » 12.09.2019{, 11:12}

1. Разбить на символы, посимвольное сравнение и далее суммирование. 2 в нулевой степени + 2 в первой + 2 во второй и т.д.
2. Оформить в пользовательский блок.
СпойлерПоказать
555.png
Win10-64. FLProg Portable.
Изображение

smol
Рядовой
Сообщения: 62
Зарегистрирован: 16.11.2017{, 18:25}
Репутация: 0

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

#3

Сообщение smol » 12.09.2019{, 15:37}

была мысль заполнить стек (массив) но вот как потом вытянуть (сложить)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#4

Сообщение Sancho » 12.09.2019{, 15:55}

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

Отправлено спустя 19 минут 48 секунд:
Пример. Возможны ошибки...
СпойлерПоказать
screenshot_19-09-12_16-32-26.png
Например, должно быть - выполнять пока "НЕ равно 0"... А один, первый скачавший, имеет "равно 0"
Вложения
Бинарная строка в байт v01.flp
(97.96 КБ) 56 скачиваний
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

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

#5

Сообщение rw6cm » 12.09.2019{, 16:30}

smol писал(а):
12.09.2019{, 10:46}
надо перевести строку в бинарном виде пример 01110000 в число.
СпойлерПоказать
2019_09_12_16_16_32_Window.png
2019_09_12_16_16_32_Window.png (10.56 КБ) 484 просмотра
Win10-64, FLProg (portable)

smol
Рядовой
Сообщения: 62
Зарегистрирован: 16.11.2017{, 18:25}
Репутация: 0

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

#6

Сообщение smol » 12.09.2019{, 17:24}

!! Спасибо! :smile9:

Naladchik
Капитан
Сообщения: 823
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 153
Откуда: Новосибирск
Имя: Павел

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

#7

Сообщение Naladchik » 12.09.2019{, 19:28}

rw6cm,
Не самый удачный вариант.
1. Для полного преобразования требуется 8 программных циклов.
2. Во время преобразования число на выходе постоянно меняется. Запись значения в переменную "число" лучше производить по окончанию преобразования.
3. Если, во время преобразования, изменится бинарная строка, то на выходе будет непредсказуемый результат. Нужен детектор изменения.
4. Да и зачем постоянно преобразовывать одно и тоже число? Опять детектор.
Win10-64. FLProg Portable.
Изображение

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

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

#8

Сообщение rw6cm » 13.09.2019{, 02:38}

Naladchik,
Согласен с Вами.
Просто ТС спрашивал
smol писал(а):
12.09.2019{, 15:37}
была мысль заполнить стек (массив) но вот как потом вытянуть (сложить)
Как один из вариантов предложил.
К тому же не ясно, от куда и как бинарка будет браться, куда число будет передаваться,
отсюда и нюансов, что добавить/изменить, может быть много.
Также как и вариантов преобразовать бинарную строку в программе флп.
Можно такой вариант.
СпойлерПоказать
2019_09_13_02_20_58_FLProg_5.3.0.png
Win10-64, FLProg (portable)

Naladchik
Капитан
Сообщения: 823
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 153
Откуда: Новосибирск
Имя: Павел

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

#9

Сообщение Naladchik » 13.09.2019{, 06:48}

rw6cm,
Вот этот Ваш вариант конвертации, по моему мнению, наиболее простой и адекватный.
Какой смысл с массивом заморачиваться если нужно просто "...перевести строку в бинарном виде пример 01110000 в число..."?
И еще пару копеек...
СпойлерПоказать
Единственный момент. Имеет смысл заменить "Получение подстроки" на "Получить символ из строки". В этом случае не будут объявляться ненужные переменные, соответственно не будет замусориваться память.
СпойлерПоказать
123.png
123.png (9.8 КБ) 410 просмотров
456.png
456.png (5.52 КБ) 410 просмотров
Результат тот же, но промежуточные переменные не требуются , да и работать побыстрее должно.
Осталось в пользовательский блок завернуть и можно пользоваться.
Win10-64. FLProg Portable.
Изображение

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#10

Сообщение Sancho » 13.09.2019{, 08:48}

Ну вот, а мой вариант даже не рассматривают :(
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Naladchik
Капитан
Сообщения: 823
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 153
Откуда: Новосибирск
Имя: Павел

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

#11

Сообщение Naladchik » 13.09.2019{, 10:15}

Sancho,
Sancho писал(а):
13.09.2019{, 08:48}
Ну вот, а мой вариант даже не рассматривают
А что там рассматривать, все прозрачно и понятно.
Но пара копеек все равно имеются.
СпойлерПоказать
я бы сделал так:
123.png
Бинарная строка в байт v01_1.flp
(107.12 КБ) 34 скачивания
1. Преобразование будет выполняться только по изменению входных данных.
2. Длина строки входных данных произвольная от 0 до 16 бит.
3. Ну и декремент надо делать все таки в конце цикла а не в начале.
Win10-64. FLProg Portable.
Изображение

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#12

Сообщение Sancho » 13.09.2019{, 11:40}

Naladchik, Насколько я помню, адресация/индексация символов в строке - с нуля.
Итого, если их всего восемь, то самый правый, младший, имеет индекс 7, а старший - 0.
В Вашем варианте - обращения будут сначала к 8, которого не существует, а о старшем - забудут.
Поэтому -1 сразу.
Если не прав - поправьте.
Вопрос о частоте обработки не рассматривался вообще, но было учтено кол-во символов, 8. Если другое - предыдущий результат не изменяется.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Naladchik
Капитан
Сообщения: 823
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 153
Откуда: Новосибирск
Имя: Павел

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

#13

Сообщение Naladchik » 13.09.2019{, 17:34}

Sancho,
Sancho писал(а):
13.09.2019{, 11:40}
...Насколько я помню, адресация/индексация символов в строке - с нуля...
Тут Вы совершенно правы. По поводу декремента я погорячился, его действительно надо ставить первым.
Sancho писал(а):
13.09.2019{, 11:40}
...Вопрос о частоте обработки не рассматривался вообще...
Ну тут кому как, лично меня напрягает когда выполняется бесполезная работа. Тут же работа в цикле, причем со строковыми данными и времени на работу с ними требуется весьма прилично. Так что использование детектора считаю обоснованным.
Sancho писал(а):
13.09.2019{, 11:40}
...но было учтено кол-во символов, 8...
Да это уже так, задел на перспективу. Раз уж пошла в ход тяжелая артиллерия типа выполнения плат по условию, работа в цикле то пусть данный алгоритм решает несколько вариантов данной задачи а не один единственный.
СпойлерПоказать
123.png
Бинарная строка в байт v01_2.flp
(143.67 КБ) 38 скачиваний
Win10-64. FLProg Portable.
Изображение

Ответить

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