...........................................................
Var
S: string;
i: byte;
tmp: boolean;
begin
write('Введите строку: '); readln(S);
for i := 1 to Length(S) do
begin
if ((S[i] = '*') and (tmp = false)) then
begin
S[i] := '-';
tmp := true;
end;
if tmp = true then S[i] := '-';
end;
writeln(S);
end.
11011111 = 223
11011001 = 217
11000011 = 195
11000000 = 192
Const
N = 7;
Var
A:array[1..N,1..N] of integer;
i,j:integer;
Begin
For i:= 1 to N do
Begin
For j:= 1 to N do
Begin
A[i,j]:=random(21)-10;
Write(A[i,j]:3,' ')
End;
WriteLn
End;
WriteLn;
For i:= 1 to N div 2+(N mod 2) do
Begin
For j:= 1 to N do
Begin
if (j<=N div 2+i)and(N div 2-i+(N mod 2)<j) then A[i,j]:=99;
Write(A[i,j]:3,' ')
End;
WriteLn;
End;
For i:= (N div 2)+(N mod 2)+1 to N do
Begin
For j:= 1 to N do
Begin
if (i-N div 2-1<j)and(j<=N+N div 2+1-i) then A[i,j]:=99;
Write(A[i,j]:3,' ')
End;
WriteLn;
End;
End.
Там целая история... проще на калькуляторе, а если так то приравнивая к десятичной системе счисления, выбором остатков.. .
Вычитание двоичных чисел. Вычитать числа, будем также столбиком и общее правило тоже, что и для десятичных чисел, вычитание выполняется поразрядно и если в разряде не хватает единицы, то она занимается в старшем. Решим следующий пример:
1101
-
110
=
111
Первый разряд. 1 - 0 =1. Записываем 1.
Второй разряд 0 -1. Не хватает единицы. Занимаем её в старшем разряде. Единица из старшего разряда переходит в младший, как две единицы (потому что старший разряд представляется двойкой большей степени ) 2-1 =1. Записываем 1.
Третий разряд. Единицу этого разряда мы занимали, поэтому сейчас в разряде 0 и есть необходимость занять единицу старшего разряда. 2-1 =1. Записываем 1.
Проверим результат в десятичной системе
1101 - 110 = 13 - 6 = 7 (111) Верное равенство.
Еще один интересный способ выполнения вычитания связан с понятием дополнительного кода, который позволяет свести вычитание к сложению. Получается число в дополнительном коде исключительно просто, берём число, заменяем нули на единицы, единицы наоборот заменяем на нули и к младшему разряду добавляем единицу. Например, 10010, в дополнительном коде будет 011011.
Правило вычитания через дополнительный код утверждает, что вычитание можно заменить на сложение если вычитаемое заменить на число в дополнительном коде.
Пример: 34 - 22 = 12
Запишем этот пример в двоичном виде. 100010 - 10110 = 1100
Дополнительный код числа 10110 будет такой
01001 + 00001 = 01010. Тогда исходный пример можно заменить сложением так 100010 + 01010 = 101100 Далее необходимо отбросить одну единицу в старшем разряде. Если это сделать то, получим 001100. Отбросим незначащие нули и получим 1100, то есть пример решён правильно