Форум: "Прочее";
Текущий архив: 2009.09.13;
Скачать: [xml.tar.bz2];
ВнизСложение чисел в двоичной системе Найти похожие ветки
← →
Shyrick (2009-07-10 23:48) [0]Всем доброго времени суток! Не ругайте меня сильно за вопрос не связанный с программированием, просто здесь я всегда находил ответы на возникшие вопросы и я думаю мне кто-нибудь да поможет...
Вопрос такой: Сложить числа -26 и 8,75 в двоичной и шестнадцетиричной системах счисленияИзучение этого предмета у нас было так себе, поэтому и знания мои в этой области кусками.
Пишу последовательность моих действий:
1. 8 в двоичную
2. 0,75 в двоичную (до какого разряда?)
3. затем cоединив получется к примеру 1000,1111 0010 нормализую -- 1,000 1111 0010*2^3
4. 2^3=8 -- 1000 в двоичной, получается: 0(знак положит) 1000(2^3=8) 000 1111 0010
5. перевожу в 16-ю
Число -26:
1. 26 в двоичную
2. перевожу в обратный код добавлением 1 в старший разряд и инверсией остальных.
Как слаживать в двоичной это понятно: нормализовал, перевел и сложил... А вот с шестнадцатиричной как?? Или просто двоичн сумму перевести в 16-ю??
Если кто знает растолкуйте, а то я начал вспоминать все это дело конспекты рыть и трохи запутался...
Всем заранее благодарен.
← →
palva © (2009-07-11 00:04) [1]
> 2. перевожу в обратный код добавлением 1 в старший разряд
> и инверсией остальных.
Зачем это. Вам ведь на бумажке надо складывать а не на компьютере. Так что забудьте о машинном представлении и о всяких нормализациях.
Фактически вам нужно вычитание. Расположите числа друг под другом так чтобы совпадало положение соответствующих разрядов и вычитайте столбиком. В двоичной системе столбиком. Это очень тупая операция, нужно только понять, как она делается.
← →
Shyrick (2009-07-11 00:33) [2]
> Так что забудьте о машинном представлении и о всяких нормализациях.
А тогда как перевести -26 и 8,75 в двоичную??
← →
Kerk © (2009-07-11 00:41) [3]
> А тогда как перевести -26
Так же как и просто 26
> 8,75
Просто сам выбираешь сколько тебе нужно разрядов
← →
Styx (2009-07-11 00:42) [4]
> получется к примеру 1000,1111 0010
Эт как получается? Должно 1000,11 получиться, как ни крути.
← →
Германн © (2009-07-11 00:50) [5]Вот просто интересно.
На кой хрен нужно кому-то кого-то обучать двоичной арифметике с нецелыми числами?
:)
Уже не первый "учебный" вопрос тут встречаю.
← →
Shyrick (2009-07-11 00:54) [6]
> Должно 1000,11 получиться, как ни крути.
эт почему?? Во цитирую "Продолжаем до тех пор, пока не достигнем заданной точности или не получим нулевой результат"
Хм, а может я и не прав.. Цитата из темы внутреннего представления...Теперь точно запутался И книжки толковой нету =(
← →
Shyrick (2009-07-11 00:59) [7]
> На кой хрен нужно кому-то кого-то обучать двоичной арифметике
> с нецелыми числами?
Да вот Министерству образования наверное... И тут много учебных вопросов...Я уже давно форум листаю, спрашиваю редко.
Т.е. как я понимаю нужно перевести в 2-ю и отнять. А потом ответ в 16-ю? И ответ с минусом?
← →
palva © (2009-07-11 01:38) [8]
> А потом ответ в 16-ю?
И ответ с минусом?
А зачем? Оставить в двоичной. А в 16-ричной вычитать по новой. Вы же должны продемонстрировать, что вы умеете вычитать в 16-ричной. А ответ оставить с минусом. Или у вас какие-то другие соглашения по записи отрицательных чисел?
← →
Германн © (2009-07-11 01:46) [9]
> Shyrick (11.07.09 00:59) [7]
>
>
> > На кой хрен нужно кому-то кого-то обучать двоичной арифметике
> > с нецелыми числами?
>
> Да вот Министерству образования наверное...
Наверное...
А никто не хочет блеснуть мастерством и привести пример арифметики в римской системе счисления с нецелыми числами?
:)
← →
palva © (2009-07-11 01:55) [10]А для позиционной системы логично и полезно рассмотреть также нецелые числа.
Вес каждого разряда является некоторой степенью основания с/с. Когда мы перемещаемся на разряд вправо, то эта степень уменьшается на единицу. В конце концов она становится отрицательной, когда мы попадаем в дробную часть.
Для десятичной системы ведь ни у кого подобных вопросов не возникает.
← →
Германн © (2009-07-11 02:04) [11]
> palva © (11.07.09 01:55) [10]
>
>
Чем так уж полезно "рассмотреть также нецелые числа"?
← →
Юрий Зотов © (2009-07-11 12:21) [12]> Германн © (11.07.09 02:04) [11]
> Чем так уж полезно "рассмотреть также нецелые числа"?
Например, тем, что потом не будет вопросов типа "почему sqrt(9.61) <> 3.1"
← →
Shyrick (2009-07-11 12:29) [13]Посмотрите правильно ли...
8,75=1000,11=8,С
-26=11010=1А
Затем просто отнимаем от 8,75 26 в двоичной и шестн. системах, столбиком.
Правильно?
Если да, то как-то легко =)
← →
Юрий Зотов © (2009-07-11 12:51) [14]> Shyrick (11.07.09 12:29) [13]
-26 <> 11010. Это 26 = 11010, а отрицательные числа хранятся в дополнительном коде. Но можно и так, конечно - не складывать отрицательное число, а вычитать положительное. Только обратите внимание, что результат должен быть отрицательным.
← →
Shyrick (2009-07-11 12:57) [15]Ясно, что не совсем все ясно =) По заданию то фиг поймешь как их складывать, просто или в машинном представлении...
← →
Юрий Зотов © (2009-07-11 13:03) [16]Скорее, в машинном представлении (иначе непонятно, как должен быть представлен отрицательный результат). Но если есть такая возможность, то лучше уточнить.
← →
palva © (2009-07-11 13:15) [17]Юрий Зотов © (11.07.09 13:03) [16]
У него результат плавающий. Вряд ли им объясняли как устроено машинное представление плавающего числа. Тем более, что таких форматов несколько.
← →
Shyrick (2009-07-11 13:18) [18]Ну а допустим если все в машинном представлени, тоя правильно в 1м посте делал?
← →
Юрий Зотов © (2009-07-11 13:21) [19]> palva © (11.07.09 13:15) [17]
Я не понимаю, как можно записать отрицательное число НЕ в машинном представлении. Оно же тогда бесконечной длины получится.
← →
Sha © (2009-07-11 13:26) [20]> Юрий Зотов © (11.07.09 13:21) [19]
Со знаком минус, как обычно.
← →
Юрий Зотов © (2009-07-11 13:31) [21]> Sha © (11.07.09 13:26) [20]
Хех... тогда все тривиально просто...
:o)
← →
oldman © (2009-07-11 13:31) [22]
> Юрий Зотов © (11.07.09 13:21) [19]
> Я не понимаю, как можно записать отрицательное число НЕ
> в машинном представлении.
На бумажке. Карандашом. Вот так: "-25,17".
← →
palva © (2009-07-11 13:32) [23]Юрий Зотов © (11.07.09 13:21) [19]
У него дробная часть равна 0.75. Поэтому в двоичной системе будет конечное представление дробной части, если это имеется в виду.
← →
oldman © (2009-07-11 13:34) [24]
> Как слаживать в двоичной это понятно: нормализовал, перевел
> и сложил... А вот с шестнадцатиричной как?? Или просто двоичн
> сумму перевести в 16-ю??
В любой системе счисления правила складывания и вычитания одинаковы.
Главное, не запутайся с разрядами и все.
В десятичной же ты в уме можешь сложить -26 и 8,75. Забуть про ум, построй алгоритм, смени систему счисления.
← →
Shyrick (2009-07-11 13:35) [25]Ну так как мне делать? обычно или в кодах
← →
Sha © (2009-07-11 13:38) [26]> Shyrick (11.07.09 13:35) [25]
> Ну так как мне делать? обычно или в кодах
Разве в задании есть хоть слово о кодах?
← →
palva © (2009-07-11 13:42) [27]При сложении очередных разрядов может случиться перенос. (A пишем 1 в уме). При вычитании может потребоваться заем одной единицы из старшего разряда. (Напр. 4 минус B: занимаем единицу у предыдущей цифры, получаем 14 минус B то есть получается в результате 9 и уменьшенная на единицу предыдущая цифра.)
← →
oldman © (2009-07-11 13:48) [28]Двоичная система:
26=11010
8=1000
11010+1000(столбиком)=100010=34
Шестнадцатеричная система:
26=1А
8=8
1А+8(столбиком)=22=34
Говорю же, с разрядами не запутайся... И с системой перевода...
← →
oldman © (2009-07-11 13:54) [29]
> Shyrick (11.07.09 13:35) [25]
> Ну так как мне делать? обычно или в кодах
Тебе результат нужен или код?
Если результат - сложи в десятичной и переведи результат в нужную систему.
Если код - мучайся дальше. (Хотя кому нужен такой код? Только преподам по курсовикам...)
← →
Shyrick (2009-07-11 13:55) [30]Ясно попробую в нескольких вариантах =)
А правильно ли 1А,0-8,С=11,4?
Тока я вот не понял как от 10 отнять С (или от 4-В) я это на калькуляторе...
← →
Sha © (2009-07-11 13:57) [31]Есть правило (наверно, из учебника алгебры 8 класса), примерно такое:
чтобы сожить числа разных знаков,
надо взять их абсолютные величины,
из большей вычесть меньшую
и приписать знак большего по абсолютной величине числа.
Сложение и вычитание столбиком, как десятичной системе.
← →
oldman © (2009-07-11 13:59) [32]
> Shyrick (11.07.09 13:55) [30]
> Тока я вот не понял как от 10 отнять С
Также как и в десятичной системе. Столбиком.
От 0 отнять С мы не можем. Переносим 1 (то есть 16). 16-С(12)=4
От 1 остался 0.
Ответ 04 или 4.
← →
oldman © (2009-07-11 14:00) [33]
> Sha © (11.07.09 13:57) [31]
> Есть правило (наверно, из учебника алгебры 8 класса), примерно
> такое:
> чтобы сожить числа разных знаков,
> надо взять их абсолютные величины,
> из большей вычесть меньшую
> и приписать знак большего по абсолютной величине числа.
>
-4+4 будет +0 или -0?
:))))))))))))
← →
Sha © (2009-07-11 14:01) [34]Нуль в школе не имеет знака.
← →
Shyrick (2009-07-11 14:01) [35]
> От 0 отнять С мы не можем. Переносим 1 (то есть 16). 16-
> С(12)=4
Все теперь в моем мозгу это уложилось, буквы с толку сбивали... Всем спасибо..
← →
Shyrick (2009-07-11 14:05) [36]Значит 1А,0-8,С=11,4?
← →
oldman © (2009-07-11 14:06) [37]
> Shyrick (11.07.09 13:35) [25]
> Ну так как мне делать? обычно или в кодах
Прикольно.
Даны А и В. Десятичные.
В шестнадцатеричной системе (в кодах):
Result=(IntToHex(I)+IntToHex(J))
:)))))))))))))))))
← →
Shyrick (2009-07-11 14:08) [38]
> oldman © (11.07.09 14:06) [37]
Ну да =), имелось ввиду прямой обратный и дополнительный коды ))
← →
oldman © (2009-07-11 14:11) [39]
> Shyrick (11.07.09 14:05) [36]
> Значит 1А,0-8,С=11,4?
Давай проверим.
1А=26, 8,С=8,12, 11,4=17,4
26-8,12=17,88
С дробными частями сложнее, да? Учебник по математике есть?
← →
Shyrick (2009-07-11 14:27) [40]итакс =)
1А,0
8,С
0-С это 16-С(12)=4
от А отняли 1 ааааааааааааа!! а вот тут как? 9 стало?
если да то 9-8=1
1-0=1
итого: 11,4
...хотя если перевести и сложить не получается... где я туплю??
выходной день сегодня =) мозг отдыхает...
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2009.09.13;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.006 c