Текущий архив: 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.47 MB
Время: 0.012 c