Однобайтовый формат это восьмиразрядная сетка. Ну, потому что 1 байт - 8 бит. А 1 бит - 1 разряд Переведем число 86 в двоичную систему счисления и получим: 01010110 Теперь число -68: 01000100
А сейчас самое интересное - нужно прицепить минус. Сразу в дополнительном коде мы не представим число. Сначала нужно перевести его в обратный. Для этого нужно просто заменить все НУЛИ на ЕДИНИЦЫ, а ЕДИНИЦЫ на НУЛИ: 01000100 = 10111011
Вот теперь это число можно представить в дополнительном коде. Нужно всего лишь прибавить в конце единицу (прибавить именно операцией сложения, а не просто дописать):
Var n,m,osn: integer; function nmbdec(var n,osn: integer): integer; var nmb,l,s,k: integer; begin nmb:=0; s:=0; k:=n; l:=1; while k>0 do begin s:=k mod 10; k:=k div 10; nmb:=nmb+l*s; l:=l*osn; end; Result:=nmb; end; { конец функции} begin write('число: '); readln(n); write('квадрат какого числа: '); readln(m); osn:=10; while osn>=2 do begin osn:=osn-1; if nmbdec(n,osn)=sqr(nmbdec(m,osn)) then begin writeln('основание системы = ',osn); break; end; end; end.
Переведем число 86 в двоичную систему счисления и получим:
01010110
Теперь число -68:
01000100
А сейчас самое интересное - нужно прицепить минус. Сразу в дополнительном коде мы не представим число. Сначала нужно перевести его в обратный. Для этого нужно просто заменить все НУЛИ на ЕДИНИЦЫ, а ЕДИНИЦЫ на НУЛИ:
01000100
=
10111011
Вот теперь это число можно представить в дополнительном коде. Нужно всего лишь прибавить в конце единицу (прибавить именно операцией сложения, а не просто дописать):
10111011
+
1
10111100
ответ:
86: 01010110
-68: 10111100