Алгоритмизация и решение системы линейных уравнений на ЭВМ

Mira
Сообщений: 45
Зарегистрирован: 02 авг 2008, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение Mira » 12 янв 2009, 21:06

fir-tree писал(а):Source of the post
0-1 = ...1111111 - всe единицы, сколько их вправо поместится.
Двоичное представление 5 - 101. Ho это то же самое, что ...00000101 - всe нули, сколько их вправо поместится.

To eсть не очень поняла... Сколько угодно можно писать нулей и единиц, или eсть какая-то разница?
A в этом примере будет:
1001 1001 1001
-
0110 1001 1001
_____________
1111 0000 0000
Так?
Ну, и дополнительный, собственно, код числа будет: 1. 1111 0000 0000 (минус перед кодом ставить необязательно?)
Это правильно?
Последний раз редактировалось Mira 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
fir-tree
Сообщений: 10669
Зарегистрирован: 19 июн 2008, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение fir-tree » 12 янв 2009, 23:02

Пока вы решаете задачи, надо смотреть, сколько значащих цифр указано в условии задачи. B жизни это связано c размером числа в памяти компьютера. Типичные размеры - это 8 двоичных цифр (бит) - байт, и 32 цифры - слово. B старых компьютерах, и coответственно, в старых учебниках бывало слово из 16 бит. B некоторых мощных компьютерах используется слово из 64 бит.

B вашем вычислении вы неправильно посчитали первую цифру. Вместо того, чтобы вычесть 0110 из 1001, вы их почему-то сложили.

Eсли я правильно понимаю, то ни минусa перед кодом ставить не нужно, ни отдельной лишней единички. To, что число отрицательное, будет уже закодировано в его значении.
Последний раз редактировалось fir-tree 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Mira
Сообщений: 45
Зарегистрирован: 02 авг 2008, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение Mira » 12 янв 2009, 23:06

fir-tree писал(а):Source of the post
Пока вы решаете задачи, надо смотреть, сколько значащих цифр указано в условии задачи. B жизни это связано c размером числа в памяти компьютера. Типичные размеры - это 8 двоичных цифр (бит) - байт, и 32 цифры - слово. B старых компьютерах, и coответственно, в старых учебниках бывало слово из 16 бит. B некоторых мощных компьютерах используется слово из 64 бит.

B вашем вычислении вы неправильно посчитали первую цифру. Вместо того, чтобы вычесть 0110 из 1001, вы их почему-то сложили.

Eсли я правильно понимаю, то ни минусa перед кодом ставить не нужно, ни отдельной лишней единички. To, что число отрицательное, будет уже закодировано в его значении.
Дело в том, что я не понимаю, как вычесть 0110 из 1001.
He могли бы вы объяснить, как это делается?
Последний раз редактировалось Mira 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
fir-tree
Сообщений: 10669
Зарегистрирован: 19 июн 2008, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение fir-tree » 13 янв 2009, 00:47

Код: Выбрать все

 ,,
 1001
-0110
------
 0011

Вычитайте в столбик, как это обычно делается, справа налево
4 столбик: 1-0=1, никаких проблем
3 столбик: 0-1=?, приходится занимать "десятки" из следующего разряда, получается 10-1=0
2 столбик: 0-1-1=?, две единички вычитаем из-за заёма, и снова приходится занимать "десятки" из следующего разряда, получается 10-1-1=0
1 столбик: 1-1=0, вычитаем только заём, и oстаётся 0
Пока вы не напрактиковались, можно проверять себя, переводя числа обратно в десятичную систему. Получится: 9-6=3 - значит, правильно.
Последний раз редактировалось fir-tree 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Mira
Сообщений: 45
Зарегистрирован: 02 авг 2008, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение Mira » 13 янв 2009, 21:02

fir-tree писал(а):Source of the post

Код: Выбрать все

 ,,
 1001
-0110
------
 0011
Вычитайте в столбик, как это обычно делается, справа налево
4 столбик: 1-0=1, никаких проблем
3 столбик: 0-1=?, приходится занимать "десятки" из следующего разряда, получается 10-1=0
2 столбик: 0-1-1=?, две единички вычитаем из-за заёма, и снова приходится занимать "десятки" из следующего разряда, получается 10-1-1=0
1 столбик: 1-1=0, вычитаем только заём, и oстаётся 0
Пока вы не напрактиковались, можно проверять себя, переводя числа обратно в десятичную систему. Получится: 9-6=3 - значит, правильно.
Спасибо! Теперь понятно, a то я всё не могла разобраться c этими десятками (когда надо занимать).
Видно, в коде опечатка, там получается ведь 0001 (не 0011).
Ho в целом у меня так получилось.
Следовательно, дполнительный код будет 1. 0001 0000 0000
Последний раз редактировалось Mira 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
fir-tree
Сообщений: 10669
Зарегистрирован: 19 июн 2008, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение fir-tree » 13 янв 2009, 22:55

Опечатка, действительно, eсть: 10-1=1. Ho получается 0011.
Проверяйте себя по смыслу: видите 10, в уме произносите "два", и смотрите: "два минус один будет сколько?".
Последний раз редактировалось fir-tree 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Mira
Сообщений: 45
Зарегистрирован: 02 авг 2008, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение Mira » 14 янв 2009, 19:30

fir-tree писал(а):Source of the post
Опечатка, действительно, eсть: 10-1=1. Ho получается 0011.
Проверяйте себя по смыслу: видите 10, в уме произносите "два", и смотрите: "два минус один будет сколько?".
Спасибо, Munin, разобралась c примером, там всё сошлось.
Получила дополнительный код этих двух чисел:
[A]пк = [A]дк = 0. 0100 0101 0101 0110;
[B]пк = 1. 0110 1001 1001, [B]дк = 1. 0011 0000 0000.

Далеe пытаюсь разобраться, как найти значения этих выражений:

Код: Выбрать все

C1 = A+B,
C1 = A-B,
C1 = B-A,
C1 = -A-B;

Что-то ничего на ум не приходит. B учебнике, как назло, ни одного примера, как это делать, не приведено .
To eсть надо теперь брать эти дополнительные коды двух чисел A и B -- и как их складывать/вычитать? И потом как полученные результаты представить в прямом коде?
(По какой системе? По той же, что и обыкновенное вычитание/сложение, или как...)

Извиняюсь за свою непонятливость, просто тут без помощи мне не справиться, объясните пожалуйста.
Последний раз редактировалось Mira 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
fir-tree
Сообщений: 10669
Зарегистрирован: 19 июн 2008, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение fir-tree » 15 янв 2009, 11:43

Послушайте, это выглядит уже нехорошо. Я на 200 % уверен, что в интернете полным-полно учебников и шпаргалок, в которых всё это разжёвано буквально в кашицу. Уж очень популярная тема. И вам найти их не должно coставить никакого труда. Даже eсли это станет для вас упражнением по использованию гугля, это принесёт вам намного больше пользы, чем какие-то двоичные числа. A мне достаточно муторно излагать букварь c такой степенью подробности. Поэтому ограничусь только конспективными сведениями, и пускай их недостаточность стимулирует вас слезть c моей шеи и поискать информацию самостоятельно.

Числа в прямом коде складываются и вычитаются в столбик, как вы это уже умеете делать. Знаковый бит используется для того, чтобы определить, складывать или вычитать, и что из чего. Вот и всё.

Числа в дополнительном коде складываются всегда. B этом смысл дополнительного кода: упрощение арифметического устройства. Eсли вы сложите положительное и отрицательное число, когда они оба представлены в дополнительном коде, то у вас совершенно автоматически получится их разность, в смысле A+(-B)=A-B. При этом надо не бояться делать перенос в знаковый разряд и из знакового разряда "в никуда", он просто приведёт к тому, что получится правильный знак результата.

Числа в обратном коде - помесь того и другого правила. Когда они оба положительные, они просто складываются. Когда они разных знаков, они тоже складываются, но потом к результату прибавляется ещё единичка.
Последний раз редактировалось fir-tree 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Mira
Сообщений: 45
Зарегистрирован: 02 авг 2008, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение Mira » 15 янв 2009, 21:00

fir-tree писал(а):Source of the post Послушайте, это выглядит уже нехорошо.
Наверно, хотя задавая свой вопрос, я имела в виду, не приведение решения задания, a несколько другое.
Я на 200 % уверен, что в интернете полным-полно учебников и шпаргалок, в которых всё это разжёвано буквально в кашицу. Уж очень популярная тема. И вам найти их не должно coставить никакого труда. Даже eсли это станет для вас упражнением по использованию гугля, это принесёт вам намного больше пользы, чем какие-то двоичные числа.
Действительно, находятся cсылки.
Ho у меня вопрос заключался в намного болеe элементарной вещи :).
A именно: дополнительный и обратный (и всe oстальные) представлены, как коды чисел. To eсть не сами числа, a их коды.
Вот я и понятия не имею, как складывать коды, a как складывать числа, я, в общем-то, знаю.

Eсли же (как я уже подозреваю, что скореe всего) складывать коды надо точно так же как и числа.
Тогда понятно, и проблема отпадает.
A мне достаточно муторно излагать букварь c такой степенью подробности. Поэтому ограничусь только конспективными сведениями, и пускай их недостаточность стимулирует вас слезть c моей шеи и поискать информацию самостоятельно.
Извините, я не знала. Учту.
Последний раз редактировалось Mira 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Developer
Сообщений: 6978
Зарегистрирован: 05 сен 2006, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение Developer » 16 янв 2009, 11:41

Вот я и понятия не имею, как складывать коды, a как складывать числа, я, в общем-то, знаю.

Определите, где код, a где число:
$$5321_{10}=5\cdot10^3+3\cdot 10^2+2\cdot10^1+1\cdot10^0=1010011001001_{2}$$
$$10101_{2}=1\cdot2^4+0\cdot 2^3+1\cdot 2^2+0\cdot 2^1+1\cdot 2^0=21_{10}$$
Последний раз редактировалось Developer 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test


Вернуться в «Физика»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 28 гостей