Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];

Вниз

Hex to Dec   Найти похожие ветки 

 
Greenchel ©   (2007-02-24 23:30) [0]

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


 
Kolan ©   (2007-02-24 23:33) [1]

http://delphimaster.net/view/1-1172164213/

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


 
Greenchel ©   (2007-02-24 23:39) [2]

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


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

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


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

OnKeyPress


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


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

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


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

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


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

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


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

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


 
Eraser ©   (2007-02-25 01:04) [9]

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

StrToInt.

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

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


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


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

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

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

Число:=число or 1 и переводи


 
Greenchel ©   (2007-02-25 01:15) [11]

Пытаюсь перевести 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 ©   (2007-02-25 01:20) [12]

> [11] Greenchel ©   (25.02.07 01:15)

в модуле Classes есть стандартная ф-ция HexToBin.


 
Greenchel ©   (2007-02-25 01:26) [13]

Eraser, наверное я всё таки тупой ((((( В classes нашёл HexToBin но так и не врубился как переделать содержимое TEDIT =((((


 
Германн ©   (2007-02-25 01:34) [14]


> Greenchel ©   (25.02.07 01:15) [11]

Сбил тебя Лёха с толку :)
Перевод в двоичное представление тебе НАФИГ НЕ НУЖЕН!
Прочитай вот это http://www.delphikingdom.com/asp/viewitem.asp?catalogid=838 и да пребудет тебе счастье.


 
Greenchel ©   (2007-02-25 01:44) [15]

В общем вот что мне надо реализовать:
Переводим число в поле 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 справа (в моём случае без изменений). Далее переводим то, что у нас получилось в десятичную систему исчисления.

Это единственное что я так и не смог реализовать, осталось совсем немного =((( помогиитееее плиииззззззззз....


 
Юрий Зотов ©   (2007-02-25 01:49) [16]

См. [10].

N or 1 - устанавливает в единицу нулевой бит числа N.


 
Германн ©   (2007-02-25 02:05) [17]


> Greenchel ©   (25.02.07 01:44) [15]

Ты прочитал урок АП по моей ссылке? Там не так много текста, не затруднит прочитать. Но в твоём случае польза может быть просто неоценима!
Кстати что ты привел в [15] в синем цвете? Откуда ты это взял!!! ?


 
Greenchel ©   (2007-02-25 02:13) [18]

Всё, всем спасибо, во всём разобрался
Германн, Юрий Зотов, Eraser, вам особое спасибо =)


 
Kolan ©   (2007-02-25 11:01) [19]

&laquo;
Еще полезно добавить перевод русских &#132;ф, и, с, в, у, а&#147;
в латинские.&raquo;

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


&laquo;пришлось правда немног править код&raquo;

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



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

Форум: "Начинающим";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.039 c
1-1169552982
Сало
2007-01-23 14:49
2007.03.18
Перехват всех ошибок в консольных приложениях


15-1172118410
TAHAT
2007-02-22 07:26
2007.03.18
Документация по FireBird, FIBPlus, FastReport


9-1145273507
Creep1
2006-04-17 15:31
2007.03.18
Glut в Delphi


2-1172328420
yaJohn
2007-02-24 17:47
2007.03.18
StrToDateTime -> EConvertError


6-1159958842
Sinus
2006-10-04 14:47
2007.03.18
Server/ClientSocket vs. TcpClient/Server





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский