Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сложение.


Страницы:   1 2

Егор ©   (2002-08-27 18:19:00) 

Привет. Помогите сложить шестнадцатеричные значения.

01 00 00 00 +
04 00 00 00 +
08 00 00 00 +
00 00 02 00

Результат - 0D 00 02 00

Нужен пример!


Dimk   (2002-08-31 23:47:00) [1]

А ведь в арифметике еще много других действий -
например умножение, деление...
:0)


drpass   (2002-08-31 23:44:00) [2]

>Егор
Что можно ответить на такой вопрос...
Попробуй научиться работать хотя бы в Microsoft Word. Delphi для тебя будет сложноватой :)


Юрий Зотов   (2002-08-31 23:31:00) [3]

> Егор (31.08.02 20:46)
> Ну и как?

Очень просто. Есть такой алгоритм - "гадание на кофейной гуще". Если применить его рекурсивно, то все получится. Главное в этом деле - меньше думать и больше спрашивать.


Алексей Ким   (2002-08-31 20:58:00) [4]

28-2-5-13=8
28-2-5-8=13
итд

толька скажи мне ты хочешь минимальный шаг то есь 1 или
максимальный то есь само число?
или ты создал прогу у которая развила телепатические способности?


Егор   (2002-08-31 20:46:00) [5]


> Теперь даю Вам число - 28. Как получить из него 2, 5, 13
> и 8?


Ну и как?


TTCustomDelphiMaster   (2002-08-31 16:59:00) [6]

Delirium © (31.08.02 16:28)
А у меня сложилось впечатление что ему нужна операция XOR. Но похоже одному Богу известно что ему нужно:)


Delirium   (2002-08-31 16:28:00) [7]

Хм, а у меня сложилось впечатление, что ему нужно реализовать алгоритм получения ограниченного множества чисел, дающих в сумме определённое значение.


drpass   (2002-08-31 16:24:00) [8]

>Егор
Ты просто не понимаешь смысла: число в шестнадцатеричной системе ничем не отличается от числа в десятичной или двоичной (или семиричной, или третичной). Это просто другой вид записи цифр, и на математику это никак не влияет. Тебе же ясно сказал Юрий Зотов.
А если тебе нужно разложить число по битам (кажется, именно это ты и имел в виду) - это операция совсем другого рода.


Юрий Зотов   (2002-08-31 16:06:00) [9]

> Егор (31.08.02 15:24)

А в десятичной системе как это сделать?
Пример: 2+5+13+8=28.
Теперь даю Вам число - 28. Как получить из него 2, 5, 13 и 8?


Егор   (2002-08-31 15:53:00) [10]

Ну и???
Мужики!!! Если б я знал - не спрашивал!


Anatoly Podgoretsky   (2002-08-31 15:48:00) [11]

Прочитать ответ Юрий Зотов © (27.08.02 23:54)


Егор   (2002-08-31 15:24:00) [12]

Со сложением всё ясно. А как обратно перевести? То есть значение 0D 00 02 00 перевести в

Результат:
01 00 00 00
04 00 00 00
08 00 00 00
00 00 02 00


Юрий Зотов   (2002-08-28 00:41:00) [13]

Sorry, ошибочка вышла - 31(3) не бывает. Правильно - 101(3).
:о)


Юрий Зотов   (2002-08-27 23:54:00) [14]

> Егор

Так и быть, открою страшную тайну.

var
i1, i2, i3, i4, R: integer;
begin
i1 := $01000000;
i2 := $04000000;
i3 := $08000000;
i4 := $00000200;
R := i1 + i2 + i3 + i4; // Вот она, страшная тайна!
end;

Результат: R = $0D000200. Можете проверить:
Label1.Caption := IntToHex(R, 8);

Дело в том, что любое число имеет само значение (value) и имеет строковое представление этого значения (representation). Первое не зависит ни от чего и увидеть его невозможно. Видим мы всегда только второе - и только это второе зависит от системы счисления.

Пример. Количество пальцев у меня на руках в разных системах счисления можно записать, как 1010(2), 31(3), 20(5), 14(6), 12(8), 10(10), А(16) и так далее (система счисления указана в скобках). Но как бы мы его ни записывали, пальцев у меня от этого ни прибавится, ни убавится.

Поэтому не существует никаких шестнадцатеричных или десятичных ЗНАЧЕНИЙ. Существуют СТРОКОВЫЕ представления ОДНОГО И ТОГО ЖЕ значения в разных системах счисления. Вот они-то и разные, а само ЗНАЧЕНИЕ всегда одно.

А складываются значения с помошью знака плюс.


Reindeer Moss Eater   (2002-08-27 18:39:00) [15]

>Егор
Они складываются с помощью знака "+"


Silentor   (2002-08-27 18:38:00) [16]

Имеется библиотека HyperString. Так там есть routines для арифметики чисел в строковом виде.


Внук   (2002-08-27 18:34:00) [17]

StrToIntDef и IntToHex потом.
Хотя все равно не очень понятно, внутреннее представление чисел в любом случае бинарное


Егор   (2002-08-27 18:31:00) [18]


> calc.exe :)))


Умник? Ладно... Специально для умников:
Помогите программносложить шестнадцатеричные значения.


Skier   (2002-08-27 18:27:00) [19]

>Егор
calc.exe :)))


Егор   (2002-08-27 18:26:00) [20]

В примере, очевидно.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо