Преобразование числа из прямого кода в дополнительный осуществляется так:
Если число, записанное в прямом коде, положительное, то к нему дописывается старший (знаковый) разряд, равный 0, и на этом преобразование заканчивается;
Если число, записанное в прямом коде, отрицательное, то все разряды числа инвертируются, а к результату прибавляется 1. К получившемуся числу дописывается старший (знаковый) разряд, равный 1.
1) Записываем наше число в прямом(обычном двоичном коде в 16-разрядном представлении)
-7 в десятичной = 0000000000000111 - нули у нас впереди так как сетка 16 -разрядная
2) Инвертируем все разряды числа: 1111111111111000
3) Прибавляем к этому числу 1: 1111111111111001
4) Старший знаковый разряд у нас уже равен 1 следовательно число -7 в 10-ой в дополнительном коде: 1111110100111010
Поделитесь своими знаниями, ответьте на вопрос:
143, 25 и 312, 5 перевести из десятичной с.с в двоичную и 16-ю с.с решите в столбик и ответ сс система счисления завтра сдавать уже надо.
var
B:array[1..100, 1..100] of real;
i, j, n:integer;
Pr:real;
flag:boolean;
begin
randomize;
write('n = ');
readln(n);
if n < 2 then
begin
writeln('некорректный размер матрицы');
Exit;
end;
for i := 1 to n do
begin
for j := 1 to n do
begin
B[i, j] := (random(101) - 50) / 10;
write(B[i, j], ' ');
end;
writeln;
end;
Pr := 1;
flag := false;
for i := 2 to n do
for j := 1 to i - 1 do
if B[i, j] < 0 then
begin
flag := true;
Pr := Pr * B[i, j];
end;
if Flag then
writeln('Pr = ', Pr)
else
writeln('Нет ни одно отрицательного элемента ниже главной диагонали');
readln;
end.