Форум программистов, компьютерный форум, киберфорум
Мат. логика и множества
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 08.01.2014
Сообщений: 46

Схема преобразования двоичной тетрады из прямого в дополнительный код

01.07.2014, 22:53. Показов 1679. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Схема преобразования (в зависимости от знака числа) двоичную тетраду из прямо-го в дополнительный код. Знак числа сохранить.
Построить схему в базисе И-ИЛИ-НЕ и 2И-НЕ.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.07.2014, 22:53
Ответы с готовыми решениями:

Перевод двоичной тетрады в 16-ричный код. Прокомментировать код
Помогите пожалуйста прокомментировать код программы перевода двоичной тетрады в 16-ричный код: sseg segment stack dw 128 dup...

перевести числа из прямого кода в дополнительный
перевести числа из прямого кода в дополнительный 10010011,за ранее благодарю

Перевод числа из прямого кода в дополнительный
Преобразовать двоичный целочисленый операнд из прямого кода в дополнительный и наоборот и выполнить сложение и вычитание в дополнительном...

14
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
02.07.2014, 04:00
HEAD5,
тут элементы "Исключающее ИЛИ" нужны, а как их делать из И-ИЛИ-НЕ и 2И-НЕ?
0
266 / 192 / 50
Регистрация: 16.06.2014
Сообщений: 424
02.07.2014, 11:23
Двоичный код. Это прямой код (1 разряд - знак числа). Обратный и дополнительный код совпадает с прямым у положительных чисел. Для отрицательных: обратный - инверсия разрядов, дополнительный +1 к младшему разряду обратного кода.
Для отрицательного получается сначала Не, затем ИЛИ 0000...0001
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
03.07.2014, 05:43
Iriini,
сложение и "Логическое ИЛИ" это не одно и то же — суммирование двоичных многоразрядных чисел производится путем сложения одноразрядных двоичных чисел https://www.cyberforum.ru/cgi-bin/latex.cgi?A_i, https://www.cyberforum.ru/cgi-bin/latex.cgi?B_i и переноса из младшего разряда https://www.cyberforum.ru/cgi-bin/latex.cgi?C_i, образуя на выходе значения суммы https://www.cyberforum.ru/cgi-bin/latex.cgi?S_i и переноса в старший разряд https://www.cyberforum.ru/cgi-bin/latex.cgi?C_{i+1}. Функции https://www.cyberforum.ru/cgi-bin/latex.cgi?S_i и https://www.cyberforum.ru/cgi-bin/latex.cgi?C_{i+1} имеют вид https://www.cyberforum.ru/cgi-bin/latex.cgi?S_{i}=A_{i}\oplus B_{1}\oplus C_i и https://www.cyberforum.ru/cgi-bin/latex.cgi?C_{i+1}=A_{i}\cdot B_{i}+(A_{1}+B_{i})\cdot C_i

для начала, строим общую таблицу преобразования прямой код https://www.cyberforum.ru/cgi-bin/latex.cgi?X https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow дополнительный код https://www.cyberforum.ru/cgi-bin/latex.cgi?Y=\bar{X}+1
x3x2x1x0 y3y2y1y0
0000 0000
0001 0001
0010 0010
0011 0011
0100 0100
0101 0101
0110 0110
0111 0111
1000 1000
1001 1111
1010 1110
1011 1101
1100 1100
1101 1011
1110 1010
1111 1001
из таблицы видно, что y3=x3 ("Знак числа сохранить") и y0=x0,
для оставшихся разрядов
  1. строим таблицы зависимости y2=f(x3,x2,x1,x0) и y1=f(x3,x2,x1,x0)
  2. упрощаем функции
  3. строим обобщенную схему
  4. переводим обобщенную схему в базис И-ИЛИ-НЕ и 2И-НЕ
https://www.cyberforum.ru/cgi-bin/latex.cgi?y_{0}=x_{0}
https://www.cyberforum.ru/cgi-bin/latex.cgi?y_{1}=\bar{x_3}x_{1}+x_{3}(\bar{x_1}x_{0}+x_{1}\bar{x_0})
https://www.cyberforum.ru/cgi-bin/latex.cgi?y_{2}=\bar{x_3}x_{2}+x_{3}(\bar{x_2}x_{0}+\bar{x_2}x_{1}+x_{2}\bar{x_1}\bar{x_0})
https://www.cyberforum.ru/cgi-bin/latex.cgi?y_{3}=x_{3}
1
477 / 280 / 90
Регистрация: 15.11.2013
Сообщений: 530
03.07.2014, 08:59
Не понял, что значит «знак числа сохранить». Дополнительный код - это форма представления отрицательных чисел. То есть, когда вы преобразуете прямой код в дополнительный, это значит, что вы у положительного числа меняете знак и делаете его отрицательным. Если ту же самую процедуру вы примените к отрицательному числу, то получите то же по абсолютной величине положительное число в прямом коде.
0
266 / 192 / 50
Регистрация: 16.06.2014
Сообщений: 424
03.07.2014, 09:49
сложение и "Логическое ИЛИ" это не одно и то же
Согласна. Надо реализовать сумматор, где будет присутствовать и этот вентиль...
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
03.07.2014, 09:54
AdmiralHood,
а если сложить число Х в прямом коде с числом -Х в дополнительном коде и с "сохраненным знаком" тогда получим 0
Iriini,
я в принципе расписал все разряды и обошелся без "исключающего ИЛИ" использовав только "НЕ", "И" и "ИЛИ"
2
477 / 280 / 90
Регистрация: 15.11.2013
Сообщений: 530
03.07.2014, 14:46
Что значит — «с сохранённым знаком»?
0
266 / 192 / 50
Регистрация: 16.06.2014
Сообщений: 424
03.07.2014, 19:30
Что значит — «с сохранённым знаком»?
Обратный код отрицательного числа преобразуется заменой всех значащих цифр, кроме знакового разряда, на противоположные цифры.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
03.07.2014, 21:05
Базис 2И-НЕ
https://www.cyberforum.ru/cgi-bin/latex.cgi?y_{1} = \overline{\overline{x_{1}\overline{x_{3}}+x_{3} \left(x_{0} \overline{x_{1}} + \overline{x_{0}}x_{1} \right)}} = \overline {\overline{\overline{x_{3}} x_{1}}\overline{x_{3} \left(   \overline{x_{1}} x_{0} + x_{1}   \overline{x_{0}} \right) }} =\overline {\overline{ \overline{x_{3}} x_{1}}\overline{x_{3} \overline{\overline{\left(   \overline{x_{1}} x_{0} + x_{1}   \overline{x_{0}} \right) }}}} =\overline {\overline{  \overline{x_{3}} x_{1}}\overline{x_{3} \overline{\overline{\overline{x_{1}} x_{0}} \overline{x_{1} \overline{x_{0}}}}}}<br />
Дальше самостоятельно.
1
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
04.07.2014, 04:52
Цитата Сообщение от AdmiralHood Посмотреть сообщение
Что значит — «с сохранённым знаком»?
 
прямой код
со знаком
дополнительный
код
 знакзначениезнакзначение
+000000000
+100010001
+200100010
+300110011
+401000100
+501010101
+601100110
+701110111
-010001000
-110011111
-210101110
-310111101
-411001100
-511011011
-611101010
-711111001
0
477 / 280 / 90
Регистрация: 15.11.2013
Сообщений: 530
04.07.2014, 13:47
А что тогда значит «с несохранённым знаком»?
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
04.07.2014, 14:13
Цитата Сообщение от AdmiralHood Посмотреть сообщение
А что тогда значит «с несохранённым знаком»?
А это реальность. Например, АЛУ не знает "знаковое" число или нет. И если мы выполним операцию инкремента с байтом 0x7F == 127, то получим байт 0x80, что есть -128. Не забываем что в отрицательных числах в качестве логической единицы выступает 0, а в качестве логического нуля 1. Пример программы:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
lenin@lenin-host:~/samples$ cat shit.c && gcc shit.c && ./a.out 
#include <stdio.h>
#include <stdlib.h>
 
int
main (int argc, char ** argv)
{
    int x = 0x7FFFFFFF;
    
    fprintf(stdout, "%d == %X\n", x, x);
    fprintf(stdout, "%d == %X\n", ++x, x);
    
    exit(EXIT_SUCCESS);
}
2147483647 == 7FFFFFFF
-2147483648 == 80000000
lenin@lenin-host:~/samples$
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
05.07.2014, 11:12
Цитата Сообщение от AdmiralHood Посмотреть сообщение
А что тогда значит «с несохранённым знаком»?
А об этом лучше спросить у HEAD5 или у его преподавателя
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
12.07.2014, 12:55
Цитата Сообщение от AdmiralHood
А что тогда значит «с несохранённым знаком»?
Наверное, так
 
прямой код
со знаком
дополнительный
код
числознакзначениезнакзначение
+0 0 000 0 000
+1 0 001 0 001
+2 0 010 0 010
+3 0 011 0 011
+4 0 100 0 100
+5 0 101 0 101
+6 0 110 0 110
+7 0 111 0 111
-0 1 000Not(1000)+1=0111+1=1000
-1 1 001Not(1001)+1=0110+1=0111
-2 1 010Not(1010)+1=0101+1=0110
-3 1 011Not(1011)+1=0100+1=0101
-4 1 100Not(1100)+1=0011+1=0100
-5 1 101Not(1101)+1=0010+1=0011
-6 1 110Not(1110)+1=0001+1=0010
-7 1 111Not(1111)+1=0000+1=0001
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.07.2014, 12:55
Помогаю со студенческими работами здесь

Инвертировать значения двух старших битов каждой тетрады, если младший бит тетрады единичный
Не могли бы помочь написать программу (common lisp) Прочитать беззнаковое целое число из стандартного потока ввода и в каждом байте числа...

Дополнительный код и модифицированный дополнительный
Не как не пойму как выполнить сложение, сложить заданные в дополнительном коде числа используя модифицированный дополнительный код,...

Реализация прямого и обратного быстрого преобразования Фурье
Добрый день. Есть задание - Реализация простого и обратного быстрого преобразования Фурье (с прореживанием в временной области или...

Амлитудно-фазовый корректор для приемника прямого преобразования
Помогите разобраться с курсовой работой. Готов даже за это заплатить ) Нахожусь на крайней стадии отчаяния :cry: Прикрепил ТЗ +...

Программа преобразования из двоичной в десятичную
Напишите программу, которая преобразует введенное пользователем десятичное число в двоичное. Напр. 49-&gt; 00110001


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru