Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.13;
Скачать: CL | DM;

Вниз

Сложение чисел в двоичной системе   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.016 c
15-1246911129
DeadMeat
2009-07-07 00:12
2009.09.13
Восстановление базы SQL


15-1247691352
Германн
2009-07-16 00:55
2009.09.13
Сколько максимально может потреблять телевизор ЭЛТ


3-1227089155
Sesh
2008-11-19 13:05
2009.09.13
OracleLob сохранить в текстовый файл


15-1247622069
DV-Karpov
2009-07-15 05:41
2009.09.13
Кнопки в системном меню (Стиль Windows XP)


15-1247728694
desc
2009-07-16 11:18
2009.09.13
PostgreSQL, доступ из одной БД в другую, построение views...