Сложение (вычитание) двоичных чисел в дополнительном коде - PascalABC.NET
Формулировка задачи:
Сложение (вычитание) двоичных чисел в дополнительном коде.Можно не писать нахождение дополнительного кода
Решение задачи: «Сложение (вычитание) двоичных чисел в дополнительном коде»
textual
Листинг программы
type TInt=word; function convert(const a:Tint):TInt; begin if a<0 then convert:=((not a) or (high(Tint) div 2)) + 1 else convert:=a; end; function reconvert(const a:Tint):Integer; begin if a>(high(Tint) div 2) then begin reconvert:=-(high(Tint)-a)-1; end else reconvert:=a; end; var a,b:TInt; begin a:=convert(10); b:=convert(-20); writeln(reconvert(a),' ', reconvert(b)); writeln(reconvert(a+b),' ', reconvert(a-b)); readln; end.
Объяснение кода листинга программы
- Объявление типа данных TInt, который представляет собой слово (word).
- Определение функции convert, которая принимает на вход значение типа TInt и возвращает значение типа TInt. Функция выполняет преобразование двоичного числа из дополнительного кода в обычный.
- В функции convert используется условная конструкция if-then для определения знака числа a. Если число отрицательное, то выполняется преобразование в положительное число с помощью операции
наивысший бит (high) делить на 2
и операцииили с нулем
. К полученному результату добавляется единица. Если число положительное, то оно просто возвращается. - Определение функции reconvert, которая принимает на вход значение типа TInt и возвращает целое число. Функция выполняет обратное преобразование двоичного числа из обычного кода в дополнительный.
- В функции reconvert используется условная конструкция if-then для определения знака числа a. Если число больше половины от
наивысший бит (high) делить на 2
, то выполняется преобразование в отрицательное число с помощью операциинаивысший бит (high) минус a
и операцииделить на -1
. К полученному результату добавляется единица. Если число меньше или равно половине отнаивысший бит (high) делить на 2
, то оно просто возвращается. - Объявление переменных a и b типа TInt.
- Присваивание переменной a значение функции convert, которая преобразует число 10 из дополнительного кода в обычный.
- Присваивание переменной b значение функции convert, которая преобразует число -20 из дополнительного кода в обычный.
- Вывод значения переменной reconvert для a.
- Вывод значения переменной reconvert для b.
- Вывод значения суммы a и b после преобразования в дополнительный код.
- Вывод значения разности a и b после преобразования в дополнительный код.
- Чтение значения из стандартного ввода с помощью функции readln.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д