|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Разъясните код программы, пожалуйста. |
|
Delphi - Разъясните код программы, пожалуйста.
|
Новый участник Сообщения: 3 |
Есть две функции перевода чисел из десятичной системы счисления в двоичную и из десятичной в шестнадцатеричную.
Мне не понятен сам код программы, объясните какими действиями что мы делаем. Код программы писал не я, увы ![]() 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 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать тут используются битовые операции
но если не понятно, то не используйте этот код, лучше нагуглите примеры с mod и div |
Отправлено: 19:07, 27-03-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Необычный Сообщения: 4466
|
Профиль | Сайт | Отправить PM | Цитировать Да, и в прям витиеватый код.
Pulemetic, Надо идти по шагам, отслеживая изменения переменных. Если лень, то вариант предложенный fergetом: Цитата ferget:
|
|
------- Отправлено: 20:34, 27-03-2012 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Драйвер - [решено] Мышь - код 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 |
|