ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Оффтоп > Болталка
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

От формул к процессору/@K
  #1  
Старый 15.11.2008, 13:54
Аватар для -=Kern=-
-=Kern=-
Новичок
Регистрация: 10.05.2008
Сообщений: 4
Провел на форуме:
73318

Репутация: 0
По умолчанию От формул к процессору/@K

Часть I

Привет всем.
Этим уроком я открываю цикл статей посвященных – логике, и самое главное логическим основам работы процессора. Вы поймете, как работает процессор на физическом и логическом уровнях. И возможно, захотите собрать эту не большую вещицу – своими руками!
Но для начала нам нужно изучить формальную логику и начнем с основных логических операций:
Всего может быть два возможных состояния – Сильный сигнал и Слабый, Истинна и Ложь, 1 и 0.

Первая логическая операция.

Логическое отрицание - ИНВЕРСИЯ - если исходное выражение истинно, то результат отрицания будет ложным, и наоборот, если исходное выражение ложно, то результат отрицания будет истинным. Например:

A ____неА
1_____ 0
0_____1


С = A & B.

Вторая логическая операция.

Логическое умножение - КОНЪЮНКЦИЯ - это выражение будет истинно в одном случае, когда оба значения верны. Например, высказывание “Дождь будет утром и вечером”, верно только в одном случае если дождь будет и утром и вечером, а ложно, если дождь будет вечером, а утром не будет и наоборот.


A & B = С
1__1= 1
1__0= 0
0__1= 0
0__0= 0


То есть Истинна и Истинна = Истинна
Истинна и Ложь = Ложь
Ложь и Истинна =Ложь
Ложь и Ложь = Ложь


Как и говорил, наше выражение будет истинным только в одном случае.

Третья логическая операция.

С = A + B

Логическое сложение – ДИЗЪЮНКЦИЯ - это выражение будет истинно во всех случаях, кроме одного, когда оба значения ложны. Например, высказывание Дождь будет утром или вечером, означает следующее – Дождь будет только вечером, - Дождь будет только утром, - Дождь будет и утром и вечером. Но из-за характерных особенностей русского языка многие считают, что это высказывание означает, Дождь будет только вечером, либо Дождь будет только утром, а третьего в расчет не берут.


A + B = С
1__1= 1
1__0= 1
0__1= 1
0__0= 0


То есть Истинна или Истинна = Истинна
Истинна или Ложь = Истинна
Ложь или Истинна = Истинна
Ложь или Ложь = Ложь


Как и говорил, наше выражение будет ложно только в одном случае.

Четвертая логическая операция.

Логическое следование: ИМПЛИКАЦИЯ - связывает два простых логических выражения, из которых первое является условием , а второе – следствием из условия. Это было научное определение так сказать, а сейчас объясню, что все это значит = короче представьте вам дали решить задачу, и условия к этой задачи тоже дали(исходные данные), вам осталась подумать над решением. Рассмотрим эту ситуацию:
Вам дали правильные исходные данные к задаче – решали правильно, значит решили правильно(истинно).
Вам дали правильные исходные данные к задаче – но решали не правильно, значит решили неправильно(ложь).
Вам дали неправильные исходные данные к задаче – но решали вы все равно правильно(чудо), значит решили правильно(истинна).
Вам дали неправильные исходные данные к задаче – решали неправильно, значит решили неправильно(истинна). Спросите почему Истинна? А как вы могли решить если исходные данные не верны, значит в итоге истинна.


A B = С
1__1= 1
1__0 =0
0__1= 1
0__0= 1

Ложь тока в одном случае, когда думали не правильно.

Пятая логическая операция.

Логическая равнозначность: ЭКВИВАЛЕНТНОСТЬ - определяет результат сравнения двух простых логических выражений А и В. Результатом ЭКВИВАЛЕНТНОСТИ является новое логическое выражение, которое будет истинным тогда и только тогда, когда оба исходных выражения одновременно истинны или ложны. Короче истина ЭКВИВАЛЕНТНА истине. А ложь ЭКВИВАЛЕНТНА лжи.


A B = С
1__1 = 1
1__0 = 0
0__1 = 0
0__0 =1


Э то основные логические операции, через них можно выразить все остальные. Хотя ели сказать по секрету, то основных операции всего три

Логическое отрицание - ИНВЕРСИЯ
Логическое умножение - КОНЪЮНКЦИЯ
Логическое сложение – ДИЗЪЮНКЦИЯ


Через них выражаются и ИМПЛИКАЦИЯ, и ЭКВИВАЛЕНЦИЯ и остальные. В последующих статьях мы это разберем - а пока усвойте этот материал. И если усвоите, то вы на шаг приблизитесь к пониманию работы процессора и всего остального.



(c)Kerny

Последний раз редактировалось -=Kern=-; 23.01.2009 в 00:39..
 
Ответить с цитированием

  #2  
Старый 15.11.2008, 14:21
Аватар для -=Kern=-
-=Kern=-
Новичок
Регистрация: 10.05.2008
Сообщений: 4
Провел на форуме:
73318

Репутация: 0
По умолчанию

Часть II

Привет всем – надеюсь вы хорошо усвоили материал прошлой статьи! сегодня мы изучим правила преобразования логических выражений….
Так для начала условимся – Логическое произведение (КОНЬЮНКЦИЯ) – записываем так A*B (логическое произведение А на В) или можно еще записывать так А&B.
Логическое сложение (ДИЗЪЮНКЦИЯ) – записываем так А+В , можно еще записать по другому на клавиатура мне не позволяет….
Логическое отрицание (ИНВЕРСИЯ) – записывать будем, как неА.

Закон непротиворечия

Закон непротиворечия, означает следующее A не может быть равно своему отрицанию,
неA *A=0
Например есть выражение A *неA+B, догадайтесь чему оно будет равно? Правильно A *неA+B=B.

Закон исключения третьего

Высказывание может быть либо истинным либо ложным, третьего не дано. Это означает, что результат логического сложения высказывания и его отрицания принимает значение истинна.
А+неА=1
Да и незабываем , 1 - это истинна, 0 – это ложь. Что бы, было легче можно представлять , так «+», это «или», «*» - это «и», а инверсия – тут и так понятно….

Закон двойного отрицания

Если выражение дважды отрицается, то в результате мы получим исходное высказывание. Например:
ненеА=А
Так же, как в Алгебре минус на минус - дает плюс.
Закон тождества
Всякое высказывание тождественно самому себе. Например А=А.

Законы Моргана:


Первый закон Де Моргана.

не(А + В)= неА* неВ
Отрицание выражения (А или В) равно неА и неБ, давайте проверим!? Для этого построим так называемую таблицу истинности:

А______В_____неА____неВ__(А+В)__Не(А+ В)___неА* неВ
0______0______1______1_____0______1_________1
0______1______1______0_____1______0_________0
1______0______0______1_____1______0_________0
1______1______0______0_____1______0_________0


Сначала, даем начальные значения А и Б, затем их инвертируем, после подвергаем значения А и В дизъюнкции (операция «или»), затем то, что получилось инвертируем и получаем – одну единицу и три нуля… Теперь берем значения неА и неВ и подвергаем коньюнкции(логическое умножение) и в результате получаем , единицу и три ноля… тоесть не(А + В)= неА* неВ, формула верна

Второй закон Де Моргана.

не(А*В)= неА + неВ

А______В______неА___неВ__(А*В)___Не(А *В) ______неА+ неВ
0______0______ 1_____1______0______1_____________1
0______1______ 1_____0______0______1_____________1
1______0______ 0_____1______0______1_____________1
1______1______ 0_____0______1______0_____________0


Тоже самое здесь - формула верна. Мы сейчас строили таблицы истинности – вообще-то это проходится по информатике….
А теперь пару примеров:
Не(А+В)*(А*неВ)
Начнем, видим в первой части выражения не(А+В) – первый закон Де Моргана – преобразовываем:
НеА*неВ*(А*неВ), раскроем скобки
НеА*неВ*А*неВ, видим неА и А, - закон непротиворечия .
Остается
0*НеВ*неВ
Смотрим НеВ*неВ, ага это равно просто неВ, спросите почему? Допустим есть некое третье значение например, значение С.
С*неВ*неВ=С*неВ, допустим С=0
А неВ равно 1, тогда
0*1*1=0, а это тоже самое что и 0*1.
Вот и получается, что неВ*неВ, равно просто неВ. Так вернёмся к примеру:
Получаем,
0*неВ=0, тут можно пойти двумя путями, первый я назвал его алгебраический – умножение на ноль всегда дает ноль, или второй логический:
У нас операция конъюнкция(вспоминаем союз «и») а эта операция так сказать истинна только в одном случае, когда оба значения истинны, тоесть 1*1=1, смотрим на первый множитель нашего выражения он уже равен нолю… Значит чему бы небыло равно, значение неВ, хоть 1 хоть 0, всегда будет ложь(ноль). В принципе остальные примеры решаются также.
Наверное, сейчас вы задаетесь мыслями, а зачем это? Хотел написать ответ в этой статье, но передумал, скажу лишь, что узнаете в последующих статьях. Это только начало!



(c)Kerny

Последний раз редактировалось -=Kern=-; 15.11.2008 в 14:53..
 
Ответить с цитированием

  #3  
Старый 15.11.2008, 14:37
Аватар для -=Kern=-
-=Kern=-
Новичок
Регистрация: 10.05.2008
Сообщений: 4
Провел на форуме:
73318

Репутация: 0
По умолчанию

Часть III

Привет всем!
Итак, третья статья из цикла!

Приступим!
Помните, я вам говорил, что всего логических операции три, и что через них выражаются все остальные, так вот сегодня мы рассмотрим это.
Значит, начнем с эквиваленции
Как мы помним, она выглядит так

A _________B ________С
1__________1________1
1__________0________0
0__________1________0
0__________0________1


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

A _________B ________С
1__________1________1


Тоесть при значениях А=1, B=1, нужно получить значение С=1. В чем проблема? - спросите вы. Это же обычная конъюнкция 1*1=1, Да это конъюнкция, но она нам не подходит – не забываем, что мы должны решить задачу в общем виде – заменим выражение 1*1=1 формулой А*В=С, и попробуем, подставить другие значения например 0*0=0, и видим, что это не подходит т.к при эквиваленции 0*0=1, а теперь не большой секрет – то, что я только что вам втирал можно было опровергнуть иначе, просто подумав – это же одна логическая операция – конъюнкция, а конъюнкция не может быть равна эквиваленции, отсюда вывод в нашей формуле должно быть больше одной логической операции, и еще если вы хорошо усвоили предыдущий материал, то должны знать, что 1*1*1=1, тоже не подойдет, т. к после преобразования получиться 1*1=1, отсюда еще один вывод, наша формула не должна преобразовываться, найдем нашу формулу:
Пробуем разные комбинации, ниже подставляем вместо букв значения и сравниваем их с таблицей эквиваленции …
________________
A*B+B=C
1*1+1=1
1*0+0=0
0*1+1=1

Уже не подходит.
____________________
A*B+А*B=C
1*1+1*1=1
1*0+1*0=0
0*0+0*0=0

не подходит
____________________
A*B+неА*неB=C
1*1+не1*не1=1
1*0+не1*не0=0
0*1+не0*не1=0
0*0+не0*не0=1

____________________
Ура! Нашли нужную нам формулу!
Итак, мы выяснили, что эквиваленцию можно выразить следующей формулой :
A*B+неА*неB=C
Импликацию мы не будем выражать, я показал вам лишь ход мыслей….
Формула импликации: неА+В
A _________B ________С
1__________1________1
1__________0________0
0__________1________1
0__________0________1


А теперь, рассмотрим, как это все изображается – схемами. Люди знакомые с программированием знают, что алгоритм программы можно изображать в виде блок схем, так вот здесь это тоже имеет место быть…. И это называется это логическими схемами.
Так как, основных логических операций всего три, то и логических элементов будет три…
Смотрите рисунок:
____________________________

____________________________
Итак, вы видите коньюнктор, у него всегда два входа и один выход, на вход подаются А и В (для отличия его от дизъюнктора добавляется символ & см. рисунок), в результате на выходе будет А*В, например:
Подаются значения 1 и 0, в результате будет 0.
Ниже дизъюнктор , у него всегда два входа и один выход, на вход подаются А и В (для отличия его от коньюнктора добавляется символ 1 см. рисунок), в результате на выходе будет А+В, например:
Подаются значения 1 и 0, в результате будет 1.
И последний элемент инвертор, у него один вход и один выход, если на вход подать 1 то результатом будет 0 и наоборот.
Это так сказать промежуточная статья – так, что не ругайте…. Скоро будет еще интереснее.


(c)Kerny

Последний раз редактировалось -=Kern=-; 15.11.2008 в 14:58..
 
Ответить с цитированием

  #4  
Старый 15.11.2008, 14:41
Аватар для -=Kern=-
-=Kern=-
Новичок
Регистрация: 10.05.2008
Сообщений: 4
Провел на форуме:
73318

Репутация: 0
По умолчанию

Часть IV

Приступим, в предыдущей статье мы рассмотрели основные логические элементы, теперь разберемся с логическими схемами, попробуем построить схему для логического выражения
B∙неА+неB∙A=C

______________________________

______________________________

Надеюсь, принцип вы поняли. Теперь рассмотрим физическую реализацию логических элементов,
Начнем с элемента “не”.

______________________________

______________________________

Как видим на рисунке если подаем 0, то ничего не происходит…. Если 1, то канал закрывается и газ не проходит(может быть и жидкость). Надеюсь понятно.
Логическое сложение:

______________________________

______________________________

Как видим из рисунка, у нас получается:

A _________B ________С
1__________1________0
1__________0________0
0__________1________0
0__________0________1


А, надо:

A _________B ________С
1__________1________1
1__________0________1
0__________1________1
0__________0________0


Что ж - это не проблема, нам всего лишь нужно инвертировать полученный результат

A _________B ________С________неС
1__________1________0________1
1__________0________0________1
0__________1________0________1
0__________0________1________0


А при физической реализации, добавить в схему инвертор.
Логическое умножение:

______________________________

______________________________

И тут тоже придется добавить инвертор.

A _________B ________С________неС
1__________1________0________1
1__________0________1________0
0__________1________1________0
0__________0________1________0


Что ж вот основной принцип…

А теперь займемся непосредственно формулами и логическими схемами, сегодня нам предстоит не много не мало, а придумать схему так называемого «полусумматора двоичных чисел», ведь мы знаем, что достаточно научить схему одному арифметическому действию – сложению, и получим какой ни какой, а процессор!

Так, за помощь обратимся к двоичной системе счисления, попробуем сложить в двоичной системе, числа, имеется в виду не логическое сложение, а арифметическое.

1+1=10
1+0=1
0+1=1
0+0=0


Можете проверить с помощью калькулятора Windows.
Что бы вам легче было понять, составим таблицу:

(Арифметическое сложение, а не логическое, обратите внимание на знак «=», p s идут как одно число, это для того, что бы было видно разрядность числа )

A ____+____B ____=___P________S
1__________1________1________0
1__________0________0________1
0__________1________0________1
0__________0________0________0


A и В, числа которые складываем (в двоичной системе счисления), S – результат сложения (сумма), P – перенос из разряда, это нужно для случая 1+1=10, так как здесь, получается 10 (правильно говорить не десять, а один и ноль), то 1 пойдет в перенос (P) , а 0 в сумму (s), таким образом значение суммы(s) 0,1,1,0, значит мы должны найти такую формулу, при которой

(Арифметическое сложение, а не логическое)

A ____+____B _____=_____S
1__________1___________0
1__________0___________1
0__________1___________1
0__________0___________0

В одной из статей я показывал, как это делается – простым подбором. Вот искомая формула:

S=(A+B)*не(A*B)

Можете её проверить, вы это уже умеете.

Для переноса (P)

(Арифметическое сложение, а не логическое)

A ____+____B _____=_____P
1__________1___________1
1__________0___________0
0__________1___________0
0__________0___________0


Тут и думать нечего, P=A*B, начертим логическую схему полусумматора двоичных чисел:

______________________________

______________________________

Надеюсь, вы все поняли, в следующих статьях мы разберем, как данные логические схемы реализовывать радиотехнически, и тп.
Если же здесь есть механик, то он может взять сварочный аппарат и сделать механический полусумматор двоичных чисел))

Желаю удачи!

(c)Kerny

Последний раз редактировалось -=Kern=-; 15.11.2008 в 14:48..
 
Ответить с цитированием

  #5  
Старый 15.11.2008, 19:45
Аватар для Sinay
Sinay
Постоянный
Регистрация: 01.09.2007
Сообщений: 866
Провел на форуме:
2022674

Репутация: 1224


Отправить сообщение для Sinay с помощью ICQ
По умолчанию

начало дискретной алгебры,это знает любой
тему в топку
 
Ответить с цитированием

  #6  
Старый 19.11.2008, 16:08
Аватар для -=Kern=-
-=Kern=-
Новичок
Регистрация: 10.05.2008
Сообщений: 4
Провел на форуме:
73318

Репутация: 0
По умолчанию

ЭМ.. не согласен
 
Ответить с цитированием

  #7  
Старый 19.11.2008, 16:21
Аватар для gisTy
gisTy
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
Провел на форуме:
3629857

Репутация: 504


По умолчанию

учебник по дискретке копипастить не круто
 
Ответить с цитированием

  #8  
Старый 19.11.2008, 16:28
Аватар для -=Kern=-
-=Kern=-
Новичок
Регистрация: 10.05.2008
Сообщений: 4
Провел на форуме:
73318

Репутация: 0
По умолчанию

Цитата:
Сообщение от gisTy  
учебник по дискретке копипастить не круто
Я и не копипастил...
 
Ответить с цитированием

  #9  
Старый 19.11.2008, 19:34
Аватар для smOleg
smOleg
Banned
Регистрация: 30.11.2007
Сообщений: 114
Провел на форуме:
2077503

Репутация: 54
По умолчанию

а зачем это знать?
 
Ответить с цитированием

  #10  
Старый 19.11.2008, 19:41
Аватар для rushter
rushter
Reservists Of Antichat - Level 6
Регистрация: 23.05.2008
Сообщений: 756
Провел на форуме:
9257858

Репутация: 979


Отправить сообщение для rushter с помощью ICQ
По умолчанию

Если на программиста учишься,этому всегда учат
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ