Форум: "Основная";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];
ВнизСложение. Найти похожие ветки
← →
Егор (2002-08-27 18:19) [0]Привет. Помогите сложить шестнадцатеричные значения.
01 00 00 00 +
04 00 00 00 +
08 00 00 00 +
00 00 02 00
Результат - 0D 00 02 00
Нужен пример!
← →
MBo (2002-08-27 18:23) [1]Проблема-то в чем?
← →
Егор (2002-08-27 18:26) [2]В примере, очевидно.
← →
Skier (2002-08-27 18:27) [3]>Егор
calc.exe :)))
← →
Егор (2002-08-27 18:31) [4]
> calc.exe :)))
Умник? Ладно... Специально для умников:
Помогите программно сложить шестнадцатеричные значения.
← →
Внук (2002-08-27 18:34) [5]StrToIntDef и IntToHex потом.
Хотя все равно не очень понятно, внутреннее представление чисел в любом случае бинарное
← →
Silentor (2002-08-27 18:38) [6]Имеется библиотека HyperString. Так там есть routines для арифметики чисел в строковом виде.
← →
Reindeer Moss Eater (2002-08-27 18:39) [7]>Егор
Они складываются с помощью знака "+"
← →
Юрий Зотов (2002-08-27 23:54) [8]> Егор
Так и быть, открою страшную тайну.
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) и так далее (система счисления указана в скобках). Но как бы мы его ни записывали, пальцев у меня от этого ни прибавится, ни убавится.
Поэтому не существует никаких шестнадцатеричных или десятичных ЗНАЧЕНИЙ. Существуют СТРОКОВЫЕ представления ОДНОГО И ТОГО ЖЕ значения в разных системах счисления. Вот они-то и разные, а само ЗНАЧЕНИЕ всегда одно.
А складываются значения с помошью знака плюс.
← →
Юрий Зотов (2002-08-28 00:41) [9]Sorry, ошибочка вышла - 31(3) не бывает. Правильно - 101(3).
:о)
← →
Егор (2002-08-31 15:24) [10]Со сложением всё ясно. А как обратно перевести? То есть значение 0D 00 02 00 перевести в
Результат:
01 00 00 00
04 00 00 00
08 00 00 00
00 00 02 00
← →
Anatoly Podgoretsky (2002-08-31 15:48) [11]Прочитать ответ Юрий Зотов © (27.08.02 23:54)
← →
Егор (2002-08-31 15:53) [12]Ну и???
Мужики!!! Если б я знал - не спрашивал!
← →
Юрий Зотов (2002-08-31 16:06) [13]> Егор (31.08.02 15:24)
А в десятичной системе как это сделать?
Пример: 2+5+13+8=28.
Теперь даю Вам число - 28. Как получить из него 2, 5, 13 и 8?
← →
drpass (2002-08-31 16:24) [14]>Егор
Ты просто не понимаешь смысла: число в шестнадцатеричной системе ничем не отличается от числа в десятичной или двоичной (или семиричной, или третичной). Это просто другой вид записи цифр, и на математику это никак не влияет. Тебе же ясно сказал Юрий Зотов.
А если тебе нужно разложить число по битам (кажется, именно это ты и имел в виду) - это операция совсем другого рода.
← →
Delirium (2002-08-31 16:28) [15]Хм, а у меня сложилось впечатление, что ему нужно реализовать алгоритм получения ограниченного множества чисел, дающих в сумме определённое значение.
← →
TTCustomDelphiMaster (2002-08-31 16:59) [16]Delirium © (31.08.02 16:28)
А у меня сложилось впечатление что ему нужна операция XOR. Но похоже одному Богу известно что ему нужно:)
← →
Егор (2002-08-31 20:46) [17]
> Теперь даю Вам число - 28. Как получить из него 2, 5, 13
> и 8?
Ну и как?
← →
Алексей Ким (2002-08-31 20:58) [18]28-2-5-13=8
28-2-5-8=13
итд
толька скажи мне ты хочешь минимальный шаг то есь 1 или
максимальный то есь само число?
или ты создал прогу у которая развила телепатические способности?
← →
Юрий Зотов (2002-08-31 23:31) [19]> Егор (31.08.02 20:46)
> Ну и как?
Очень просто. Есть такой алгоритм - "гадание на кофейной гуще". Если применить его рекурсивно, то все получится. Главное в этом деле - меньше думать и больше спрашивать.
← →
drpass (2002-08-31 23:44) [20]>Егор
Что можно ответить на такой вопрос...
Попробуй научиться работать хотя бы в Microsoft Word. Delphi для тебя будет сложноватой :)
← →
Dimk (2002-08-31 23:47) [21]А ведь в арифметике еще много других действий -
например умножение, деление...
:0)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c