Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Hex to Dec [D7, XP]


Greenchel ©   (2007-02-24 23:30:00) 

Приведите пожалуйста кто-нибудь нормальный работающий код, для конвертации Hex в Dec. По всему интернету искал, ничего не нашёл, а очень нужно и очень срочно :(


Германн   (2007-02-25 01:07:00) [1]


> Если нажата клавиша, то вместо неё будет введена клавиша2?

if Key = клавиша1 then Key:=клавиша2

> как перевести число в двоичную систему, проверить чему равен
> его 0 бит, если он равен нулю, то надо заменить его на 1
> и перевести его в десятичную систему, если он равено 1,
> то перевести в десятичную без изменений.
>

Число:=число or 1и переводи Greenchel © Пытаюсь перевести hex to bin таким образом:
function IntToBin(IValue : Int64; NumBits : word = 64) : string;
var RetVar : string;
   i,ILen : byte;
begin
RetVar := '';

case NumBits of
     32 : IValue := dword(IValue);
     16 : IValue := word(IValue);
     8  : IValue := byte(IValue);
end;

while IValue 0 do begin
   Retvar := char(48 + (IValue and 1)) + RetVar;
   IValue := IValue shr 1;
end;

if RetVar = '' then Retvar := '0';
Result := RetVar;
end;


Функцию вызываю так:
HexToBin(Edit5.Text)

Но выдаёт ошибку:
[Error] Unit1.pas(131): Incompatible types: 'TCaption' and 'PAnsiChar'

В чём дело :S :( Eraser © > [11] Greenchel ©   (25.02.07 01:15)

в модуле Classes есть стандартная ф-ция HexToBin. Greenchel © Eraser, наверное я всё таки тупой ((((( В classes нашёл HexToBin но так и не врубился как переделать содержимое TEDIT =(((( Германн ©
> Greenchel ©   (25.02.07 01:15) [11]

Сбил тебя Лёха с толку :)
Перевод в двоичное представление тебе НАФИГ НЕ НУЖЕН!
Прочитай вот это http://www.delphikingdom.com/asp/viewitem.asp?catalogid=838и да пребудет тебе счастье. Greenchel © В общем вот что мне надо реализовать:
Переводим число в поле F2(D) в двоичную систему отсчёта и получаем 111 (у вас другое число, начинающееся с 0 справа!).
Нам нужно присвоить биту 0 значение 1. Тут главное не ошибиться. ВНИМАНИЕ: отсчёт битов ведётся справа с нуля!!! (самое правое число соответствует нулевому биту)

Для наглядности напишу так:
Что у меня получилось : 0 0 0 0 0 1 1 1
Соответствующие биты: 7 6 5 4 3 2 1 0

Как видно из моего примера, у меня включены биты 0,1 и 2, а все остальные выключены. У вас вместо 1 над битом 0 будет тоже стоять 0.

Для присвоения биту 0 значение 1 надо просто записать то, что у вас получилось с заменой 0 на 1 справа (в моём случае без изменений). Далее переводим то, что у нас получилось в десятичную систему исчисления.

Это единственное что я так и не смог реализовать, осталось совсем немного =((( помогиитееее плиииззззззззз.... Юрий Зотов © См. [10].

N or 1 - устанавливает в единицу нулевой бит числа N. Германн ©
> Greenchel ©   (25.02.07 01:44) [15]

Ты прочитал урок АП по моей ссылке? Там не так много текста, не затруднит прочитать. Но в твоём случае польза может быть просто неоценима!
Кстати что ты привел в [15] в синем цвете? Откуда ты это взял!!! ? Greenchel © Всё, всем спасибо, во всём разобрался
Германн, Юрий Зотов, Eraser, вам особое спасибо =) Kolan © «
Еще полезно добавить перевод русских „ф, и, с, в, у, а“
в латинские.»

Идея хорошая.


«пришлось правда немног править код»

Функция :
function HexToInt(Hex: string): Longint;
которуя с привел по ссылке работает отлично. Что там править?


Eraser   (2007-02-25 01:04:00) [2]

> [0] Greenchel ©   (24.02.07 23:30)

StrToInt.

> как перевести число в двоичную систему

в Indy есть ф-ция IntToBin, посмотри как сделана.


Greenchel   (2007-02-25 00:58:00) [3]

+ к тому вопросу (наверное это мои последние вопросы)
как перевести число в двоичную систему, проверить чему равен его 0 бит, если он равен нулю, то надо заменить его на 1 и перевести его в десятичную систему, если он равено 1, то перевести в десятичную без изменений.


Greenchel   (2007-02-25 00:46:00) [4]

сорри за то что так туплю, но как сделать:
Если нажата клавиша, то вместо неё будет введена клавиша2?


Greenchel   (2007-02-25 00:41:00) [5]

ммм... спасибо попробую сейчас...


Германн   (2007-02-25 00:34:00) [6]


> Greenchel ©   (25.02.07 00:24) [3]

Еще полезно добавить перевод русских "ф, и, с, в, у, а" в латинские.


DrPass   (2007-02-25 00:29:00) [7]

OnKeyPress


Greenchel   (2007-02-25 00:24:00) [8]

Ещё подскажите пожалуйста как на TEdit наложить ограничение на ввод только символов (1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F), причём если юзер введёт маленькую букву из предложенного набора, на автоматически станет заглавной.


Greenchel   (2007-02-24 23:39:00) [9]

Kolan, большое спасибо, пришлось правда немног править код, но всё таки он сработал =)


Kolan   (2007-02-24 23:33:00) [10]

http://www.delphimaster.ru/cgi-bin/forum.pl?n=0&id=1172164213

Читай внимательно, там 2 варианта.


Наверх

Титульная страница Поиск, карта сайта Написать письмо