Сложение (вычитание) двоичных чисел в дополнительном коде - 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.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д