Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2 3 4  Все   Вниз
  Печать  
Автор Тема: двоичная арифметика  (Прочитано 67884 раз)
0 Пользователей и 1 Гость смотрят эту тему.
pavlirka
Гость
« : 02-11-2008 14:25 » 

Дорогие, уважаемы, помогите пожалуйста, засыпаюсь.
Завтра в 13.00 нужно задать контрольную, а у меня мозгов хватило только на пару заданий а из еще 6, я то в принципе понимаю что это не сложно и желание самой сделать у меня есть, а вот мозгов нет, я в компах ни рублю вообще. Юрист я хороший, если в моей сфере есть вопросы помогу чем смогу. дернуло меня на 2-е высшее поступить.
Помогите кто чем может, даже за совет буду очень благодарна!!!!

1) Перевести из заданной системы исчисления в десятичную:
11011011 основание 2
16 основание 8
567 основание 16

2) Сложить, вычесть, умножить в двоичной системе  (с проверкой по десятичной):
1111000011 111000110
111000000100  1001111111
100111000 10111101

3) Вычислить значение логической функции на всех наборах ее аргументов
F(Х1, Х2, Х 3)=(Х1 ^Х2 ) ˇ((Х1 ^Х3 )ˇ(Х2 ^Х3 ))


4) Определить значение логических выражений при заданных значениях переменных a и b
Начальные присваивания  a=FALSE b=FALSE
Логическое выражение
NOT (a AND b AND (a OR b) OR NOT b (a AND b AND (a OR b) AND b) OR NOT b.
 a AND (b AND a OR a) AND b) OR NOT b.

Еще есть 3 задачи в Pascal, если сможете помочь я их напишу .
Заранее всем очень благодарна!!!!
С уважением Ирина
« Последнее редактирование: 03-12-2008 04:27 от Алексей1153++ » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 02-11-2008 14:46 » 

1) пусть имееется число  Nk...N3N2N1N0 . Основание - M.

для перевести в десятичную, делаем операцию:

dec = Nk * Mk + .... + N3 * M3 + N2 * M2 +  N1 * M1 + N0 * M0

« Последнее редактирование: 02-11-2008 23:22 от Алексей1153++ » Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 02-11-2008 14:51 » 

2) всё делается абсолютно так же, как и в десятичной - столбиком. Только числа тут не 0...9 , а 0...1

0+0 == 0
0+1 == 1
1+0 == 0
1+1 == 0 ( перенос +1 в старший разряд)

0-0 == 0
0-1 == 1( и заём -1 из старшего разряда)
1-0 == 1
1-1 == 0
и так далее
« Последнее редактирование: 02-11-2008 19:44 от Алексей1153++ » Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 02-11-2008 14:57 » 

3) составляем таблицу для трёх аргументов. А также делаем промежуточные действия для удобства

Код:
X1  X2  X3  | Х1^Х2 | Х1^Х3 | Х2^Х3  |  F
0   0   0   |  0    |   0   | ...    |  ...
0   0   1   |  0    |   0   | ...    |  ...
0   1   0   |  0    |   0
0   1   1   |  ...  |
1   0   0   |       |
1   0   1   |       |
1   1   0   |       |
1   1   1   |       |
« Последнее редактирование: 02-11-2008 15:01 от Алексей1153++ » Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 02-11-2008 15:00 » 

4) это задание на знание приоритета операторов:

() - высший
NOT - пониже
AND - ещё пониже
OR - самый низкий
Записан

pavlirka
Гость
« Ответ #5 : 02-11-2008 15:03 » 

Алексей1153++, в первом задании N это числа в ряду а M это основание? Получается Я 11011011 по порядку перемножана 2 в 0, 1, 2 , 3 , 4, 5, 6,7, степени? Теперь совсем запуталась.

Записан
pavlirka
Гость
« Ответ #6 : 02-11-2008 15:05 » 

Алексей1153++, в четвертом, скажи пожалуйста что такое  a=FALSE. b=FALSE
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #7 : 02-11-2008 15:09 » 

Алексей1153++, в первом задании N это числа в ряду а M это основание? Получается Я 11011011 по порядку перемножана 2 в 0, 1, 2 , 3 , 4, 5, 6,7, степени? Теперь совсем запуталась.

вот так получится
1*128 + 1*64 + 0*32 + 1*16 + 1*8 + 0*4 + 1*2 + 1*1
« Последнее редактирование: 02-11-2008 15:11 от Алексей1153++ » Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 02-11-2008 15:09 » 

Алексей1153++, в четвертом, скажи пожалуйста что такое  a=FALSE. b=FALSE


FALSE - ложь  (0)
TRUE - истина (1)
Улыбаюсь
Записан

pavlirka
Гость
« Ответ #9 : 02-11-2008 15:12 » 

Алексей1153++, в первом задании 11011011 с основанием 2 ответ 219?Не понял Я правильно поняла???
« Последнее редактирование: 03-12-2008 04:29 от Алексей1153++ » Записан
pavlirka
Гость
« Ответ #10 : 02-11-2008 15:15 » 

Алексей1153++, в первом задании N это числа в ряду а M это основание? Получается Я 11011011 по порядку перемножана 2 в 0, 1, 2 , 3 , 4, 5, 6,7, степени? Теперь совсем запуталась.

вот так получится
1*128 + 1*64 + 0*32 + 1*16 + 1*8 + 0*4 + 1*2 + 1*1


А почему в конце 1*1, я думала 1*2.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #11 : 02-11-2008 15:17 » 

красная единица - это первый разряд из числа в условии , а множитель 1 == 20  , так как любое число в 0 степени - это 1
Записан

pavlirka
Гость
« Ответ #12 : 02-11-2008 15:19 » 

Извини!!! Значит мне нужно математику повторять а не с информатикой разбираться!!!
Скажи а где 16 с основанием 8, 16 нужно перевести в десятичную?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #13 : 02-11-2008 15:24 » 

pavlirka, шестнадцатеричные цифры, это
0 1 2 3 4 5 6 7 8 9 a b c d e f

далее всё по формуле:

1*161 + 6*160
Записан

pavlirka
Гость
« Ответ #14 : 02-11-2008 15:28 » 

Меня Ирина завут.
А основание куда? Там же 16 с основание 8, куда 8 Не понял
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 02-11-2008 15:29 » 

pavlirka, перевод в десятичную из любой системы делается аналогично тому, как Леха описал перевод из двоичной в десятичную. Меняется только основание счисления: с 2 на 8, 16 или еще что-то. Формулы остаются теже.

Соотв., 16 в 8-ричной системе = 1 * 81 + 6 * 80 = 14 (десятичное)
« Последнее редактирование: 02-11-2008 15:31 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #16 : 02-11-2008 15:40 » 

А основание куда? Там же 16 с основание 8, куда 8 Не понял
упс, сори, конечно не 16 а 8 в задании. Ну ты суть же поняла ? Считай
Записан

pavlirka
Гость
« Ответ #17 : 02-11-2008 16:01 » 

 Извините я считала. Алексей и RXL, спасибо вам большое за помошь!!!
У меня в 1 задании получилось 129 (Алексей посчитал), 16 с основанием 8 1*8 + 6*8(в нулевой)=14 и
567 с основание 16              5*16(во второй) + 6*16 +7*16(в нулевой)= 1383

Правильно???
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #18 : 02-11-2008 16:05 » 

219 же ))
14
1383

а так правильно )
Записан

pavlirka
Гость
« Ответ #19 : 02-11-2008 16:12 » 

Алексей, вы еще что не поняли я же туплю на каждом шагу. Меня вообще цифры пугают!!!
Можно попросить помочь со вторым заданием
Сложить, вычислить, умножить в двоичной системе  (с проверкой по десятичной): 1111000011 111000110
Попорядку пересчитеваем числа? Т.е.Не понял?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #20 : 02-11-2008 16:18 » 

Ирин, а меня всё юридическое пугает ))

>>Сложить, вычислить, умножить
 может вычесть ?

например (под чертой показываю по шагам, а точки - это ещё не вычисленные значения. Ну и как обычно - столбиком всё делаем):
Код:

  111
+ 101
------
 ...0   (1+1=10 , 0 написали, 1 добавится в следующий разряд)
 ..00   (1+0+(1)=10 , 0 написали, 1 добавится в следующий разряд)
 .100   (1+1+(1)=11 , 1 написали, 1 добавится в следующий разряд)
 1100   ((1) , 1 написали)

« Последнее редактирование: 02-11-2008 16:20 от Алексей1153++ » Записан

pavlirka
Гость
« Ответ #21 : 02-11-2008 16:58 » 

У меня есть еще полтара года в запасе, буду учить иформатику, что бы больше так не позориться.
Сомневаюсь 1+0 пишем 1? 1111000011+111000110 у меня получилось 10000001001. Правильно???
Записан
pavlirka
Гость
« Ответ #22 : 02-11-2008 17:01 » 

А при вычитании, например если 0-1, пишем 1 или 0?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #23 : 02-11-2008 17:37 » 

Сомневаюсь 1+0 пишем 1

да

1111000011+111000110 у меня получилось 10000001001. Правильно???

нет, неправильно

А при вычитании, например если 0-1, пишем 1 или 0?

делается ВСЁ аналогично вычислению столбиком в десятичной:

0-1 = 1 (и сделан заём из старшего разряда)

например

Код:

 *
 1011
- 101
------
 ...0   (1-1=0 , 0 написали)
 ..10   (1-0=1 , 1 написали)
 .110   (0-1=1 , 1 написали, 1 занято из старшего разряда, помечено звёздочкой)
 0110   (0-0 , 0 написали) так как был заём, то вместо 1 уже 0 (там, где звёздочка)

ещё пример
Код:

 *
 1000
-   1
------

так как заём берётся аж из 4-го разряда, то, так же как и в случае 10-чной системы, происходит следующее:
1) разряд, из которого заняли, уменьшается на 1.
2) все разряды с нулём до этого - принимают значение = (ОСНОВАНИЕ-1)

то есть происходит следующее:

в десятичной:

  *         *
  1000  ->  099(10) - в скобках это результат заёма: 9+1==10
-    1     -    1
------     ------
   999        999

в двоичной:

  *         *
  1000  ->  011(10)   - в скобках это результат заёма: 1+1 == 10
-    1     -    1
------     ------
   111        111

с заёмом я , может, путанно объяснил, если что уточняй )
« Последнее редактирование: 02-11-2008 17:39 от Алексей1153++ » Записан

pavlirka
Гость
« Ответ #24 : 02-11-2008 17:55 » 

1111000011
 111000110
__________
.........0
........10
.......110
......1110
.....01110
....001110
...0001110
..10001110
.110001110
1110001110
Теперь парвильно?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #25 : 02-11-2008 18:05 » 

1) какая операция то производилась ? Сложение ?
2) строчки с действиями не надо писать - это я тебе для понимания расписал, для сложения и вычитания под чертой сразу результат можно записать
3) чтобы текст не расплывался, заключай в тег [code]...[/code]

Код:

 1111000011
+ 111000110
___________
10110001001
Записан

pavlirka
Гость
« Ответ #26 : 02-11-2008 18:08 » 

Это было сложение, я расписала что бы было понятно в чем у меня ошибка.
У меня вообще не правильно получилось.
Сейчас попробую вычесть, посмеемся потом над ответом!!!
Записан
pavlirka
Гость
« Ответ #27 : 02-11-2008 18:16 » 

Посмотри пожалуйста, это вычетание.
 1111000011
- 111000110
------------
 1001000101
))
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #28 : 02-11-2008 18:18 » 

У меня вообще не правильно получилось.
Сейчас попробую вычесть, посмеемся потом над ответом!!!

делай сложение сначала, внимательнее , например вот посчитай
Код:

 1001011101010
+   1001011110
--------------


Вычитание у тебя неправильно тоже. Улыбаюсь
Записан

pavlirka
Гость
« Ответ #29 : 02-11-2008 18:27 » 

1010101001011  Краснею
Записан
Страниц: [1] 2 3 4  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines