Даны два числа 1024757520 и 1232400565 в восьмеричной системе счисления, переведите в двоичную систему счисления, выполните сложение, в ответе поменяйте 0 на 1 и 1 на 0. далее переведите в 16-ричную систему счисления.
//Pascal ABC.NET Версия 2.2 Сборка 790 var ma:array[1..10,1..10] of integer; ar:array[1..10] of integer; i,j,s:integer; begin; randomize; writeln('Matrix:'); for i:=1 to 10 do begin; writeln; for j:=1 to 10 do begin; ma[i,j]:=random(-10,10); write(ma[i,j]:5); if ma[i,j]<0 then ar[i]+=ma[i,j]; end; end; writeln; writeln('Final array:'); for i:=1 to 10 do writeln(ar[i]); end.
Запишем вычисление суммы "в столбик", помня, что вычисления проводятся в системе счисления по некоторому основанию n>7. Почему именно n>7? Потому, что если бы основание системы было равно или меньше семи, в записи числа цифра семь не могла бы существовать. 12 + 17
31 В младшем разряде 2+7=1, чего быть не может, следовательно, 2+7=11 и единица пошла в старший разряд. Подтверждение этому мы видим при сложении в старшем разряде: 1+1+1=3 (учтена единица от переноса). Мы знаем, что 2+7=9 в десятичной системе счисления, а у нас получилось 11. Находим разницу: 11-9=2. Именно на столько основание системы счисления меньше десяти. 10-2=8. Следовательно, система счисления восьмеричная. ответ: в восьмеричной системе счисления.
Заменяем каждый разряд на код из таблицы.
Двоичная СС Восьмеричная СС
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
Получаем числа:
1024757520 (7) = 001000010100111101111101010000 (2)
1232400565 (7) = 001010011010100000000101110101 (2)
Складываем (0 в начале числа можно убрать):
1000010100111101111101010000 + 1010011010100000000101110101 = 10010101111011110000011000101
Меняем 1 на 0, 0 на 1:
10010101111011110000011000101 = 01101010000100001111100111010
Двоичная СС Шестнадцатеричная СС
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
Получаем число:
1101 0100 0010 0001 1111 0011 1010 (2) = D421F3A (16)