Главная страница
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
...хотя если перевести и сложить не получается... где я туплю??
выходной день сегодня =) мозг отдыхает...


 
oldman ©   (2009-07-11 14:31) [41]


> Shyrick   (11.07.09 14:27) [40]
> 0-С это 16-С(12)=4


С какого перепугу 16?
Говорю, же с разрядами не запутайся и с системой дробной части!!!


 
Юрий Зотов ©   (2009-07-11 14:34) [42]

1Ah - 8.Ch = 11.4h
26d - 8.75d = 17.25d
11.4h = 17.25d

Все нормально, в чем проблема?


 
Юрий Зотов ©   (2009-07-11 14:35) [43]

oldman ©   (11.07.09 14:31) [41]

> С какого перепугу 16?
Это заем из старшего разряда


 
Shyrick   (2009-07-11 14:43) [44]


> Все нормально

Действительно, это oldman любитель запутать =))


 
oldman ©   (2009-07-11 14:45) [45]


> Юрий Зотов ©   (11.07.09 14:35) [43]


Я сам запутался не в разрядах, а в системе перевода...
:(


 
Shyrick   (2009-07-11 14:49) [46]

Ну зато я понял... За что сапсибо.


 
Anatoly Podgoretsky ©   (2009-07-11 16:33) [47]

> Sha  (11.07.2009 14:01:34)  [34]

А у IBM имеет, поэтому них было два нуля плюс 0 и минус 0


 
Sha ©   (2009-07-11 17:24) [48]

> Anatoly Podgoretsky ©   (11.07.09 16:33) [47]

Да. У современных процессоров обычно целый нуль один, а плавающих нулей обычно два.
Иногда бывает два целых нуля. Например, при использовании двоично-десятичного представления целых чисел или у старых процессоров, использующих двоичное представление.


 
TIF ©   (2009-07-11 17:28) [49]

> Изучение этого предмета у нас было так себе, поэтому и знания
> мои в этой области кусками.

Могу скинуть презентацию, в которой излагается много чего из учебника информатики. Про системы счисления и операции над ними там куча всего есть, с примерами :) Полезная вещь, особенно когда нужно освежить память...


 
Shyrick   (2009-07-11 19:46) [50]


> TIF ©

Было бы не плохо... Был бы очень благодарен...


 
Shyrick   (2009-07-11 19:48) [51]


> двоично-десятичного представления

Кстати, а что за оно, я что-то не помню...


 
palva ©   (2009-07-11 21:33) [52]


> Кстати, а что за оно, я что-то не помню...

http://ru.wikipedia.org/wiki/Двоично-десятичный_код


 
TIF ©   (2009-07-11 21:56) [53]

> Shyrick   (11.07.09 19:46) [50]
> > Было бы не плохо... Был бы очень благодарен...

http://cid-958487bcc33eedba.skydrive.live.com/browse.aspx/Публичная

Два файла-архива 7-zip:
Информатика_Угринович_pptx.7z (6,82 МБ) - презентация в формате pptx (открывать через Office 2007 или потребуется для более ранней версии офиса установить специальное обновления с сайта Microsoft для поддержки этого формата)
Информатика_Угринович_htm.7z (7,21 МБ) - презентация в HTML, открывать через браузер IE

Про системы счисления там начинается материал с главы "2.6. Представление числовой информации с помощью систем счисления"


 
Германн ©   (2009-07-12 01:32) [54]


> Юрий Зотов ©   (11.07.09 12:21) [12]
>
> > Германн ©   (11.07.09 02:04) [11]
>
> > Чем так уж полезно "рассмотреть также нецелые числа"?
>
> Например, тем, что потом не будет вопросов типа "почему
> sqrt(9.61) <> 3.1"

Не убедил. :(



Страницы: 1 2 вся ветка

Текущий архив: 2009.09.13;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.014 c
15-1245862119
TIF
2009-06-24 20:48
2009.09.13
Все версии Windows


4-1215512670
AlexKung
2008-07-08 14:24
2009.09.13
MAPI: висяк при обрыве соединения


15-1247742783
MacroDenS
2009-07-16 15:13
2009.09.13
Хитрый вирус?


4-1216825292
Still Swamp
2008-07-23 19:01
2009.09.13
LogonUser


4-1217576481
kyn66
2008-08-01 11:41
2009.09.13
Какой установлен принтер ?