Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1247658666
картман
2009-07-15 15:51
2009.09.13
Как добавить данные из БД в полученный ранее набор данных?


6-1206625813
vlad
2008-03-27 16:50
2009.09.13
модем


15-1247212772
Pavia
2009-07-10 11:59
2009.09.13
Куда пойти?


1-1214285651
dreamse
2008-06-24 09:34
2009.09.13
Передача данных между приложениями


2-1247549794
petr
2009-07-14 09:36
2009.09.13
Ошибка на HTML странице в TWebbtowser





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский