• 0
Авторизация  
Superator

Функция возвращает разное значение на andoroid и win

Вопросы

Здравствуйте! Столкнулся с такой проблемой при отладке мультиплатформенного приложения. В windows функция преобразования с двоичного в десятичное работает корректно, а на андроиде дает неверный результат. Протестировал на мобильнике и планшете. Версия андроид 5.1.1

Например в windows двоичное число 1110 дает верный результат 14, а на android неверный  результат 12.

Пример функции:

function BinToInt(Value: string): Integer;
var
  i, iValueSize: Integer;
begin
  Result := 0;
  iValueSize := Length(Value);
  for i := iValueSize downto 1 do
    if Value[i] = '1' then
      Result := Result + (1 shl (iValueSize - i));
end;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 ответа на этот вопрос

  • 0
4 минуты назад, Superator сказал:

Здравствуйте! Столкнулся с такой проблемой при отладке мультиплатформенного приложения. В windows функция преобразования с двоичного в десятичное работает корректно, а на андроиде дает неверный результат. Протестировал на мобильнике и планшете. Версия андроид 5.1.1

Например в windows двоичное число 1110 дает верный результат 14, а на android неверный  результат 12.

Пример функции:


function BinToInt(Value: string): Integer;
var
  i, iValueSize: Integer;
begin
  Result := 0;
  iValueSize := Length(Value);
  for i := iValueSize downto 1 do
    if Value[i] = '1' then
      Result := Result + (1 shl (iValueSize - i));
end;

 

{$ZEROBASEDSTRING ON} и работай с учётом что строка с 0 начинается.

 

Либо юзай хелперы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
5 минут назад, rareMax сказал:

{$ZEROBASEDSTRING ON} и работай с учётом что строка с 0 начинается.

 

Либо юзай хелперы

Спасибо Вам большое! Я долго мучался. Вы подсказали в правильном направлении.

Вот, что было написано на офф. сайте http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Zero-based_strings_(Delphi)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу