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

Вниз

HexToBin - pozhalujsta, o4en nuzhno   Найти похожие ветки 

 
Glex ©   (2005-12-03 12:45) [0]

Prowu, podskazhite, kak s pomowju etoj funkcii ili drugim sposobom skonvertirovat" stroku s 16-ri4nym 4islom v stroku s takim zhe chislom, no v dvoi4noj sisteme s4islenija!
Sorry za translit.


 
begin...end ©   (2005-12-03 13:01) [1]

С помощью этой функции -- никак. Она не для этого предназначена.


 
glex ©   (2005-12-03 14:12) [2]

nu a bez nee?


 
Anatoly Podgoretsky ©   (2005-12-03 15:33) [3]

А без нее надо писать свою функцию IntToBin, если конечно она не появилась в этой версии Дельфи


 
begin...end ©   (2005-12-03 16:46) [4]

> glex ©   (03.12.05 14:12) [2]

Свою написать. Например, такую:

function HexToBin(const Hex: string): string;
const
 Digits: array ["0".."9"] of string =
   ("0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001");
 Letters: array ["A".."F"] of string =
   ("1010", "1011", "1100", "1101", "1110", "1111");
var
 I, L: Integer;
 C: Char;
begin
 L := Length(Hex);
 SetLength(Result, L * 4);
 for I := 1 to L do
 begin
   C := Hex[I];
   if C in ["0".."9"] then
     Move(Digits[C][1], Result[I * 4 - 3], 4)
   else if C in ["A".."F"] then
     Move(Letters[C][1], Result[I * 4 - 3], 4)
   else
     raise Exception.CreateFmt("Incorrect symbol: %s; position: %d", [C, I])
 end
end


> Anatoly Podgoretsky ©   (03.12.05 15:33) [3]

Она появилась. Но автору нужно не само целое число (Integer), а его шестнадцатеричное представление преобразовывать. Не факт, что это представление соответствует числу, умещающемуся в 4 байтах.


 
Glex ©   (2005-12-03 17:10) [5]

Спасибо всем огромное!
Сидел до 2х часов на городской олимпиаде, думал над задачей.
Встал сегодня в 6:50, не выспался.
Простите за глупый вопрос =)
Число, кстати 250 цифр длиной.

Аффигеть, я так тупо поступил, вначале число в 10-ричною преобразовывал. Потом получившееся делением в столбик в 2-ичную =)))
Используя модуль длинной арифметики...


 
Anatoly Podgoretsky ©   (2005-12-03 17:15) [6]

Glex ©   (03.12.05 17:10) [5]
Число, кстати 250 цифр длиной.

Длина не имеет значения!


 
Anatoly Podgoretsky ©   (2005-12-03 17:17) [7]

begin...end ©   (03.12.05 16:46) [4]
Не факт, а нафиг и не нужно, строка в строку легко переводится, что ты и показал. Задачка из задач для начинающих, самые основы программирования.


 
begin...end ©   (2005-12-03 17:21) [8]

> Anatoly Podgoretsky ©   (03.12.05 17:17) [7]

Речь о стандартной IntToBin. Она переводит 4-байтный Integer.


 
Anatoly Podgoretsky ©   (2005-12-03 17:50) [9]

Если такая функция есть, то можно буфер любой длины вывести с помощью ее. Конечно для HEX строк это будет не оптимально.


 
begin...end ©   (2005-12-03 17:55) [10]

> Anatoly Podgoretsky ©   (03.12.05 17:50) [9]

Имеете в виду преобразования отдельных блоков с помощью StrToInt ($) + IntToBin?



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

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

Наверх




Память: 0.49 MB
Время: 0.049 c
4-1129202576
Spellcaster
2005-10-13 15:22
2005.12.18
Собственный хинт в трее


14-1132996973
Антон773
2005-11-26 12:22
2005.12.18
новости мира компонент


1-1131823261
dj0n
2005-11-12 22:21
2005.12.18
А как сделать Preview по нажатию на кнопку в fastreport


6-1126371628
alpine
2005-09-10 21:00
2005.12.18
как навети курсор на ссылку ??


2-1133108589
Бандерас
2005-11-27 19:23
2005.12.18
Почему прога не видит файл, находящийся с ней в одном каталоге?