Дано целое неотрицательное число. Получить число, инвертируя его нечетные биты. Решить в паскале

Princess1111Yulua Princess1111Yulua    3   04.04.2021 13:38    5

Ответы
LuLu6780 LuLu6780  04.05.2021 13:42

Вот такая программа позволяет инвертировать нечётные биты во введённом 16-ти разрядном числе (тип word).

Если что, счёт битов я брал начиная с нуля. Поэтому, младший бит (нулевой) считается чётным. Если вдруг у вас там принято считать биты начиная с единицы, то младший будет нечётным, и тогда в строке где b := 2;  надо поставить единицу вместо двух.

Также, я сделал отображение всех 16 разрядов введённого числа, и числа которое получилось после инверсии битов (то есть, число выводится в двоичном виде, начиная со старших разрядов). Это сделано для удобства проверки работы программы.

После проверки лучше удалить эти две строки (они выделены жирным шрифтом), ведь в задании не сказано выводить числа в двоичном виде.

var

a, b, n: word;

begin

write('Введите целое неотрицательное число: a= ');

readln(a);

b:=32768;for n:=15 downto 0 do begin write((a mod(b*2))div b);b:=b div 2;end;writeln();

b := 2;

for n := 0 to 7 do

begin

if (a mod (b * 2)) div b = 0

then a := a + b

else a := a - b;

b := b * 4;

end;

b:=32768;for n:=15 downto 0 do begin write((a mod(b*2))div b);b:=b div 2;end;writeln();

writeln('После инверсии нечётных битов: a= ', a);

end.


Дано целое неотрицательное число. Получить число, инвертируя его нечетные биты. Решить в паскале
Дано целое неотрицательное число. Получить число, инвертируя его нечетные биты. Решить в паскале
Дано целое неотрицательное число. Получить число, инвертируя его нечетные биты. Решить в паскале
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика