ANTIKLAN писал(а):Почему Result*2?
А как же? Мы уже прошлись по всем предыдущим цифрам, теперь сдвигаемся на разряд дальше. То есть, умножаем на основание системы счисления - т.е.2.
Если бы мы, например, анализировали строку с десятичным числом 123, то можно было бы взять первую цифру, понять, что она - 1, поместить в результат (или добавить к 0), умножить на 10, добавить вторую цифру, которая 2. Итого - 12, берём третью цифру - 3, умножаем на 10 предыдущий результат (итого 120), прибавляем 3. Итого 123.
Здесь вместо умножения на 10 идёт умножение на 2.
ANTIKLAN писал(а): И второе я могу использовать эти функции в программе "как есть"?
Естественно.
Снег Север писал(а):Чтобы функция StrToInt понимала, что ей скармливают двоичное представление, у строки должен быть префикс %.
Точно, я помнил, что что-то такое (аналог $ для hex) должно быть. Тогда можно делать ещё проще, но binstr всё ещё имеет недостаток с длиной строки.