Перевод бинарной строки в число
Перевод бинарной строки в число
Привет Всем. Чей то никак мысль не идет, надо перевести строку в бинарном виде пример 01110000 в число. Как то все громоздко получается, может у кого есть идеи.
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Перевод бинарной строки в число
1. Разбить на символы, посимвольное сравнение и далее суммирование. 2 в нулевой степени + 2 в первой + 2 во второй и т.д.
2. Оформить в пользовательский блок.
[spoiler] [/spoiler]
2. Оформить в пользовательский блок.
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Перевод бинарной строки в число
была мысль заполнить стек (массив) но вот как потом вытянуть (сложить)
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Перевод бинарной строки в число
Есть цикл - используй его....
Отправлено спустя 19 минут 48 секунд:
Пример. Возможны ошибки...
[spoiler] [/spoiler]
Например, должно быть - выполнять пока "НЕ равно 0"... А один, первый скачавший, имеет "равно 0"
Отправлено спустя 19 минут 48 секунд:
Пример. Возможны ошибки...
[spoiler] [/spoiler]
Например, должно быть - выполнять пока "НЕ равно 0"... А один, первый скачавший, имеет "равно 0"
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Перевод бинарной строки в число
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Перевод бинарной строки в число
[ref=#ff8000]rw6cm[/ref],
Не самый удачный вариант.
1. Для полного преобразования требуется 8 программных циклов.
2. Во время преобразования число на выходе постоянно меняется. Запись значения в переменную "число" лучше производить по окончанию преобразования.
3. Если, во время преобразования, изменится бинарная строка, то на выходе будет непредсказуемый результат. Нужен детектор изменения.
4. Да и зачем постоянно преобразовывать одно и тоже число? Опять детектор.
Не самый удачный вариант.
1. Для полного преобразования требуется 8 программных циклов.
2. Во время преобразования число на выходе постоянно меняется. Запись значения в переменную "число" лучше производить по окончанию преобразования.
3. Если, во время преобразования, изменится бинарная строка, то на выходе будет непредсказуемый результат. Нужен детектор изменения.
4. Да и зачем постоянно преобразовывать одно и тоже число? Опять детектор.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Перевод бинарной строки в число
[ref]Naladchik[/ref],
Согласен с Вами.
Просто ТС спрашивал
К тому же не ясно, от куда и как бинарка будет браться, куда число будет передаваться,
отсюда и нюансов, что добавить/изменить, может быть много.
Также как и вариантов преобразовать бинарную строку в программе флп.
Можно такой вариант.
[spoiler] [/spoiler]
Согласен с Вами.
Просто ТС спрашивал
Как один из вариантов предложил.smol писал(а): 12 сен 2019, 15:37 была мысль заполнить стек (массив) но вот как потом вытянуть (сложить)
К тому же не ясно, от куда и как бинарка будет браться, куда число будет передаваться,
отсюда и нюансов, что добавить/изменить, может быть много.
Также как и вариантов преобразовать бинарную строку в программе флп.
Можно такой вариант.
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Перевод бинарной строки в число
[ref=#ff8000]rw6cm[/ref],
Вот этот Ваш вариант конвертации, по моему мнению, наиболее простой и адекватный.
Какой смысл с массивом заморачиваться если нужно просто "...перевести строку в бинарном виде пример 01110000 в число..."?
И еще пару копеек...
[spoiler]
Единственный момент. Имеет смысл заменить "Получение подстроки" на "Получить символ из строки". В этом случае не будут объявляться ненужные переменные, соответственно не будет замусориваться память.
[spoiler] Результат тот же, но промежуточные переменные не требуются , да и работать побыстрее должно.[/spoiler]
Осталось в пользовательский блок завернуть и можно пользоваться.
[/spoiler]
Вот этот Ваш вариант конвертации, по моему мнению, наиболее простой и адекватный.
Какой смысл с массивом заморачиваться если нужно просто "...перевести строку в бинарном виде пример 01110000 в число..."?
И еще пару копеек...
[spoiler]
Единственный момент. Имеет смысл заменить "Получение подстроки" на "Получить символ из строки". В этом случае не будут объявляться ненужные переменные, соответственно не будет замусориваться память.
[spoiler] Результат тот же, но промежуточные переменные не требуются , да и работать побыстрее должно.[/spoiler]
Осталось в пользовательский блок завернуть и можно пользоваться.
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Перевод бинарной строки в число
Ну вот, а мой вариант даже не рассматривают 

мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Перевод бинарной строки в число
[ref=#ff8000]Sancho[/ref],
Но пара копеек все равно имеются.
[spoiler]
я бы сделал так: 1. Преобразование будет выполняться только по изменению входных данных.
2. Длина строки входных данных произвольная от 0 до 16 бит.
3. Ну и декремент надо делать все таки в конце цикла а не в начале.
[/spoiler]
А что там рассматривать, все прозрачно и понятно.
Но пара копеек все равно имеются.
[spoiler]
я бы сделал так: 1. Преобразование будет выполняться только по изменению входных данных.
2. Длина строки входных данных произвольная от 0 до 16 бит.
3. Ну и декремент надо делать все таки в конце цикла а не в начале.
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Перевод бинарной строки в число
[ref]Naladchik[/ref], Насколько я помню, адресация/индексация символов в строке - с нуля.
Итого, если их всего восемь, то самый правый, младший, имеет индекс 7, а старший - 0.
В Вашем варианте - обращения будут сначала к 8, которого не существует, а о старшем - забудут.
Поэтому -1 сразу.
Если не прав - поправьте.
Вопрос о частоте обработки не рассматривался вообще, но было учтено кол-во символов, 8. Если другое - предыдущий результат не изменяется.
Итого, если их всего восемь, то самый правый, младший, имеет индекс 7, а старший - 0.
В Вашем варианте - обращения будут сначала к 8, которого не существует, а о старшем - забудут.
Поэтому -1 сразу.
Если не прав - поправьте.
Вопрос о частоте обработки не рассматривался вообще, но было учтено кол-во символов, 8. Если другое - предыдущий результат не изменяется.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Перевод бинарной строки в число
[ref=#ff8000]Sancho[/ref],
[spoiler] [/spoiler]
Тут Вы совершенно правы. По поводу декремента я погорячился, его действительно надо ставить первым.Sancho писал(а): 13 сен 2019, 11:40...Насколько я помню, адресация/индексация символов в строке - с нуля...
Ну тут кому как, лично меня напрягает когда выполняется бесполезная работа. Тут же работа в цикле, причем со строковыми данными и времени на работу с ними требуется весьма прилично. Так что использование детектора считаю обоснованным.
Да это уже так, задел на перспективу. Раз уж пошла в ход тяжелая артиллерия типа выполнения плат по условию, работа в цикле то пусть данный алгоритм решает несколько вариантов данной задачи а не один единственный.
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя