Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Разъясните код программы, пожалуйста.

Ответить
Настройки темы
Delphi - Разъясните код программы, пожалуйста.

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть две функции перевода чисел из десятичной системы счисления в двоичную и из десятичной в шестнадцатеричную.
Мне не понятен сам код программы, объясните какими действиями что мы делаем.
Код программы писал не я, увы


function DEC2BIN(DEC: LONGINT): string;

var
BIN: string;
I, J: LONGINT;

begin
if DEC = 0 then
BIN := '0'
else
begin
BIN := '';
I := 0;
while (1 shl (I + 1)) <= DEC do
I := I + 1;
for J := 0 to I do
begin
if (DEC shr (I - J)) = 1 then
BIN := BIN + '1'
else
BIN := BIN + '0';
DEC := DEC and ((1 shl (I - J)) - 1);
end;
end;
DEC2BIN := BIN;
end;


function DEC2HEX(DEC: LONGINT): string;

const
HEXDigts: string[16] = '0123456789ABCDEF';

var
HEX: string;
I, J: LONGINT;

begin
if DEC = 0 then
HEX := '0'
else
begin
HEX := '';
I := 0;
while (1 shl ((I + 1) * 4)) <= DEC do
I := I + 1;
for J := 0 to I do
begin
HEX := HEX + HEXDigts[(DEC shr ((I - J) * 4)) + 1];
DEC := DEC and ((1 shl ((I - J) * 4)) - 1);
end;
end;
DEC2HEX := HEX;
end;

Отправлено: 18:55, 27-03-2012

 

Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


тут используются битовые операции

но если не понятно, то не используйте этот код, лучше нагуглите примеры с mod и div

Отправлено: 19:07, 27-03-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Да, и в прям витиеватый код.
Pulemetic, Надо идти по шагам, отслеживая изменения переменных. Если лень, то вариант предложенный fergetом:
Цитата ferget:
если не понятно, то не используйте этот код, лучше нагуглите примеры с mod и div »

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 20:34, 27-03-2012 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Разъясните код программы, пожалуйста.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Драйвер - [решено] Мышь - код 41 помагите пожалуйста NAS6209 Microsoft Windows 2000/XP 10 02-05-2012 17:01
Разное - [решено] Matlab. Код программы. Pulemetic Программирование и базы данных 3 27-01-2012 22:38
C/C++ - [решено] Помогите, пожалуйста с написание программы на С++ LyuoSII Тест-форум 2 18-11-2011 09:03
C/C++ - Помогите написать программы пожалуйста Drago Программирование и базы данных 1 30-05-2011 23:55




 
Переход