Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.008 c
3-35531
michael_b
2002-08-20 16:39
2002.09.12
как загрузить все значения некоторого поля бд в combobox.items


1-35694
lorien
2002-09-02 15:19
2002.09.12
компоненты добавляющие цвета


1-35660
Begin
2002-09-02 03:54
2002.09.12
Мне показалось, или на www.borland.com говорят о Delphi 7 ?


14-35906
Владимир Шевченко
2002-08-16 14:53
2002.09.12
Form1.Query Format


1-35787
Malder
2002-08-28 19:48
2002.09.12
Просто так... про ники =)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский