Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

Функция не работает, что в ней не так?   Найти похожие ветки 

 
Bloody-Wolf ©   (2005-02-28 21:51) [0]

пытался написать функцию, каторая переводит Hex число в Dec,
вроде, все правильно написал, и дельфа не ругается, но если для проверки вводишь 0000, то в ответе, вместо 0, получаеш какую-то многозначную чушь, типа 12456214, что в ней не так, я уже битых 2 часа бьюсь, и ничего не получается:

function HexToDec(text:string):integer;
const
 characters = "abcdef";
var
 contr,stepen,i,j,sum: integer;
begin
 stepen:=12;
 for i := 1 to 4 {length(text)} do
   begin
     contr:=0;
     stepen:=1 shl stepen;
       for j := 1 to 6 {length(characters)} do
         begin
           if text[i]=characters[j] then
             begin
               sum:=sum + (j+9)*stepen;
               contr:=1;
             end;
         end;
     if contr = 0 then
       begin
         sum:=sum + StrToInt(text[i])*stepen;
       end;
       stepen:=stepen-4;
   end;
   HexToDec:=sum;
end;


 
DrPass ©   (2005-02-28 21:55) [1]

Это у тебя задание такое - написать? Или ты просто не знаешь о библиотечной функции StrToInt?


 
begin...end ©   (2005-02-28 21:59) [2]

> Bloody-Wolf ©   (28.02.05 21:51)

Честно говоря, не совсем понятны манипуляции с переменной stepen. А вообще - см. [1].


 
Bloody-Wolf ©   (2005-02-28 22:01) [3]

DrPass, не вы не поняли, мне надо с клавы вводить Hex число, разве StrToInt будет работать, она ведь будет думать что ето десятичное число


 
begin...end ©   (2005-02-28 22:03) [4]

> Bloody-Wolf ©   (28.02.05 22:01) [3]

Вы ошибаетесь. Внимательно прочитайте справку по функции StrToInt.


 
Bloody-Wolf ©   (2005-02-28 22:03) [5]

А манипуляции со stepen, это степень 16, ну 16^0, 16^1, 16^2 и т.д


 
DrPass ©   (2005-02-28 22:05) [6]


> разве StrToInt будет работать, она ведь будет думать что
> ето десятичное число

Будет. Она считает число шестнадцатеричным, если оно начинается на символ $


 
Bloody-Wolf ©   (2005-02-28 22:06) [7]

Begin...end, извините, я начинающий, в справке вроде сказано что если вводить число с префиксом $, то оно будет считаться Hex, это правда, или нет, и прокатит ли это.


 
Bloody-Wolf ©   (2005-02-28 22:07) [8]

Ага, всем огромное спасибо, просто я видимо не внимательно читал ХЕЛП, еще раз спасибо



Страницы: 1 вся ветка

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
1-1109604044
hgd
2005-02-28 18:20
2005.03.13
Функция playsound


1-1109357343
KyRo
2005-02-25 21:49
2005.03.13
Параметр в программу при запуске


3-1108199545
Bogdan
2005-02-12 12:12
2005.03.13
Ошибка при запросе


1-1108454202
BPK
2005-02-15 10:56
2005.03.13
Пошаговая отладка: как не входить в системные unit ы?


14-1108717649
kai
2005-02-18 12:07
2005.03.13
beeline+gprs+icq+вечером=не коннектится