Документ взят из кэша поисковой машины. Адрес оригинального документа : http://wasp.phys.msu.ru/forum/lofiversion/index.php?t2399.html
Дата изменения: Unknown
Дата индексирования: Mon Apr 11 12:15:52 2016
Кодировка: Windows-1251
Студенческий форум Физфака МГУ > Учим компьютер "человеческой" арифметике.
Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Учим компьютер "человеческой" арифметике.
Студенческий форум Физфака МГУ > Наука физика > Есть проблема
Максим Германович
Не думаю, что для кого-то секрет, что все современные PC компьютеры - не могут сложить 2+2 и получить 4. Лучшее, на что они способны - это сложить 2,(0) с 2(0) и получить 4,(0). Причем кол-во нулей будет соответствовать максимальной длине переменной. А ведь может складывать и 1,(9) с 1,(9), ну и т.д.

Вопрос такой, можете дать принципиальную схему программируемого компьютера, способного на "человеческое" вычисление 2+2=4?
Tigran K. Kalaidjian
Цитата(Максим Германович @ 11 сентября 2005г. - 23:59)
Не думаю, что для кого-то секрет, что все современные PC компьютеры - не могут сложить 2+2 и получить 4.

Не знаю, откуда Вы это взяли, но это глупость полная. fool.gif Цифровая техника работает с дискретными значениями - и в ней проще всего реализовать целочисленную арифметику, что и делатся в первую очередь, а уже потом вводить специфические операции с дробными числами.
Простейший пример - сумматор.

Цитата
Причем кол-во нулей будет соответствовать максимальной длине переменной

Понятие переменной уже относится к языкам программирования и процессор тут ни при чем.
Если хотите узнать подробнее про принципы работы процессора и из чего он устроен - есть популярная книга Ч.Петцольда "Код" - очень советую.

Цитата(Максим Германович @ 11 сентября 2005г. - 23:59)
Вопрос такой, можете дать принципиальную схему программируемого компьютера, способного на "человеческое" вычисление 2+2=4?
*

Что такое "человеческое" вычисление? Понятие 4-ки не мыслится из соединения двух двоек, соответственно положение 2+2=4 - синтетическое и его нельзя получить, не прибегая к созерцанию. Прибегая к созерцанию, можно взять "кучку" из 2-х палочек (n палочек в общем случае) и еще "кучку" из 2-х палочек и постепенно перекладывать из второй "кучки" в первую, таким образом реализуя "человеческое" вычисление. По такому алгоритму можно производить сложение в машине Тьюринга. Описаний в Интернете полно - можете посмотреть сколь угодно подробно.
Owen
mov ax, 02h
add ax,02h

Так процессор (с 80286-наследной архитектурой) сложит 2 и 2. Получит 4. На все про все уйдет штук пять тактов процессора. На сложение чисел с плавающей точкой этого времени никак не хватит =)
Tigran K. Kalaidjian
Цитата(Owen @ 12 сентября 2005г. - 13:22)
На все про все уйдет штук пять тактов процессора.
*

Если быть точным, то 8 тактов.

ассемблерщик - наш человек ! smile.gif
Owen
Если быть точным, то 8 тактов.

Книжки под рукой не было =)
Максим Германович
Цитата(Tigran K. Kalaidjian @ 12 сентября 2005г. - 11:37)
Понятие переменной уже относится к языкам программирования и процессор тут ни при чем.
*

у процессора зато есть понятие "разрядность". Если у вас 32-разрядный процессор, то вы не заставите его в одну операцию записать в регистр общего назначения число имеющее большее число разрядов.

Цитата(Owen @ 12 сентября 2005г. - 13:22)
mov ax, 02h
add ax,02h

Так процессор (с 80286-наследной архитектурой) сложит 2 и 2. Получит 4. На все про все уйдет штук пять тактов процессора. На сложение чисел с плавающей точкой этого времени никак не хватит =)
*

Вы только забыли уточнить одну маааленькую деталь... Ваш код не всякий ассемблер компилятор поймет... Лично я не фанат masm, tasm & wasm. Это пускай другие юзают =)))



Я понял свою тупость про 2+2=4. Мне просто хочется компютер, который сможет пусть не все, но некоторые иррациональные числа точно записывать. Нечто вроде компьютера с аналоговым поцессором.
Простите за флудовую тему.
Owen
IDA, встроенные асмы в дельфу, си-билдер, PIF, список продолжать? Единственное, что для них может оказаться необходимым поменять, это оформление численных констант...
Максим Германович
Цитата(Owen @ 12 сентября 2005г. - 22:32)
IDA, встроенные асмы в дельфу, си-билдер, PIF, список продолжать? Единственное, что для них может оказаться необходимым поменять, это оформление численных констант...
*

не пользуюсь ничем из приведенного списка. Пользуюсь as и nasm под FreeBSD, там эти команды остались бы такими же, если бы не мой AMD64. Но есть у меня не на PC хитрое ядро Unix, под него Assembler compiler, в котором отличен синтаксис. А если учесть, что ассемблер только для этого юзаю, то Вам все-таки следовало оговориться о том, что не под всякой системой "процессор (с 80286-наследной архитектурой) сложит 2 и 2. Получит 4." .


Цитата(Tigran K. Kalaidjian @ 12 сентября 2005г. - 11:37)
Если хотите узнать подробнее про принципы работы процессора и из чего он устроен - есть популярная книга Ч.Петцольда "Код" - очень советую.
*

Эх... Развелось вокруг программистов... Программист на программисте сидит и другого программиста подгоняет... grin.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2016 IPS, Inc.