Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
1-1109667406
Pest(Z)
2005-03-01 11:56
2005.03.13
выполнение кода вне модуля


1-1109231329
SergeyKU
2005-02-24 10:48
2005.03.13
Запуск любых приложений из-под Делфи


11-1091076686
ORMADA
2004-07-29 08:51
2005.03.13
DBGrid


6-1104455235
nsvi
2004-12-31 04:07
2005.03.13
Отправка письма на через сервер smtp, требующий авторизации


1-1109678219
Doxygen
2005-03-01 14:56
2005.03.13
Файл или директория




   Наверх