Перевод целых десятичных чисел в любую другую системы счисления осуществляется делением числа на основание новой системы счисления (в нашем случае это 8) до тех пор, пока в остатке не останется число меньшее основания новой системы счисления. Новое число записывается в виде остатков деления, начиная с последнего.
Целая часть от деления 293 div 8 = 36 36 div 8 = 4 4 div 8 = 0 0 div 8 = 0
Остаток от деления 293 mod 8 = 5 36 mod 8 = 4 4 mod 8 = 4 0 mod 8 = 0
Остаток от деления записываем в обратном порядке. Получаем целую часть числа в 8-ой системе счисления: 0445 293 = 0445
Для перевода дробной части числа последовательно умножаем дробную часть на основание 8. В результате каждый раз записываем целую часть произведения.
0.125*8 = 1 (целая часть 1) 0*8 = 0 (целая часть 0) 0*8 = 0 (целая часть 0) 0*8 = 0 (целая часть 0) 1000
Получаем число в 8-ой системе счисления: 1000 0.125 = 0.10008
В итоге получаем число: 0445.10008 ответ: 293.125=0445.10008
Решение было получено и оформлено с сервиса: Перевод чисел онлайн
// PascalABC.NET 3.2, сборка 1370 от 24.12.2016 // Внимание! Если программа не работает, обновите версию!
begin var m:=ReadInteger('Количество строк в массиве:'); var n:=ReadInteger('Количество столбцов в массиве:'); var k:=ReadInteger('Номер строки с произведением:'); Writeln('*** Исходный массив [',m,',',n,'] ***'); var a:=MatrRandom(m,n,-50,50); a.Println(4); Writeln(4*a.ColCount*'-'); Writeln('П(',k,')=',a.Row(k).Aggregate(BigInteger(1),(x,y)->x*y)) end.
Целая часть от деления
293 div 8 = 36
36 div 8 = 4
4 div 8 = 0
0 div 8 = 0
Остаток от деления
293 mod 8 = 5
36 mod 8 = 4
4 mod 8 = 4
0 mod 8 = 0
Остаток от деления записываем в обратном порядке. Получаем целую часть числа в 8-ой системе счисления: 0445
293 = 0445
Для перевода дробной части числа последовательно умножаем дробную часть на основание 8. В результате каждый раз записываем целую часть произведения.
0.125*8 = 1 (целая часть 1)
0*8 = 0 (целая часть 0)
0*8 = 0 (целая часть 0)
0*8 = 0 (целая часть 0)
1000
Получаем число в 8-ой системе счисления: 1000
0.125 = 0.10008
В итоге получаем число: 0445.10008
ответ: 293.125=0445.10008
Решение было получено и оформлено с сервиса:
Перевод чисел онлайн
// Внимание! Если программа не работает, обновите версию!
begin
var m:=ReadInteger('Количество строк в массиве:');
var n:=ReadInteger('Количество столбцов в массиве:');
var k:=ReadInteger('Номер строки с произведением:');
Writeln('*** Исходный массив [',m,',',n,'] ***');
var a:=MatrRandom(m,n,-50,50);
a.Println(4); Writeln(4*a.ColCount*'-');
Writeln('П(',k,')=',a.Row(k).Aggregate(BigInteger(1),(x,y)->x*y))
end.
Пример
Количество строк в массиве: 7
Количество столбцов в массиве: 12
Номер строки с произведением: 5
*** Исходный массив [7,12] ***
-12 -2 34 -15 -3 -21 -43 -21 -15 -36 -44 30
-6 -4 8 -28 40 46 1 44 -34 23 47 5
-12 -22 10 -10 -2 -44 46 -38 -5 41 -45 26
-2 -47 26 46 -6 -36 1 14 -21 29 9 21
-1 15 20 -37 20 24 -10 15 1 -22 48 -31
19 17 32 -22 -32 44 -15 3 -10 32 25 36
-30 6 0 -48 -29 -17 -24 9 19 39 41 33
П(5)=4149376450560000