Десятичное(0 - 9):
Умножаем цифры числа на "веса" разрядов и складывает полученные произведения
Например:14351,1(¹⁰)=1·10⁴+4·10³+3·10²+5·10¹+1·10⁰+1·10-¹.
Двоичная(0 - 1):
Вычисляем сумму степеней двойки, соответствующих едениц в свёрнутой формуле двоичного числа
Например:10011(²)=1·2⁴+0·2³+0·2²+1·2¹+1·2⁰=19(¹⁰).
11(¹⁰)=1011(²)
Восьмеричная(0-7):
Перейдем к его развёрнутой записи и вычислим значение получившегося выражения
Например:1063(⁸)=1·8³+0·8²+6·8¹+3·8⁰=563(¹⁰)
103(¹⁰)=147(⁸)
Шестнадцатеричная(0-9,А-F):
A(10),B(11),C(12),D(13),E(14),F(15)
Например:3AF(¹⁶)=3·16²+10·16¹+15·16⁰=943(¹⁰)
154(¹⁰)=9A(¹⁶)
#include <iostream>
using namespace std;
int** CreateArr(int rows, int cols)
{
int** arr = new int* [rows];
for (int i = 0; i < rows; i++) arr[i] = new int[cols];
return arr;
}
void FillArr(int** arr, int rows, int cols)
{
for (int i = 0; i < rows; i++) for (int j = 0; j < cols; j++) arr[i][j] = -10 + rand() % 20;
}
void PrintArr(int** arr, int rows, int cols)
{
cout << endl << endl;
for (int i = 0; i < rows; i++)
{
int min{ -1 };
cout << "Строка #" << i << ": ";
for (int j = 0; j < cols; j++)
{
cout << '\t' << arr[i][j];
if (arr[i][j] >= 0 && (arr[i][j] < arr[min / 10][min % 10] || min == -1)) min = (i * 10) + j;
}
cout << '\t';
if (min != -1) cout << "Минимальный положительный элемент в этой строке: " << arr[min / 10][min % 10] << " под индексом [" << min % 10 << ']' << endl;
else cout << "Положительных элементов нет" << endl;
}
cout << endl << endl;
}
void DeleteArr(int** arr, int rows)
{
for (int i = 0; i < rows; i++) delete arr[i];
delete[] arr;
}
int main()
{
srand(time(NULL));
setlocale(0, "");
int n{}, m{};
cin >> n >> m;
int** a = CreateArr(n, m);
FillArr(a, n, m);
PrintArr(a, n, m);
DeleteArr(a, n);
return 0;
}
Умножаем цифры числа на "веса" разрядов и складывает полученные произведения
Например:14351,1(¹⁰)=1·10⁴+4·10³+3·10²+5·10¹+1·10⁰+1·10-¹.
Двоичная(0 - 1):
Вычисляем сумму степеней двойки, соответствующих едениц в свёрнутой формуле двоичного числа
Например:10011(²)=1·2⁴+0·2³+0·2²+1·2¹+1·2⁰=19(¹⁰).
11(¹⁰)=1011(²)
Восьмеричная(0-7):
Перейдем к его развёрнутой записи и вычислим значение получившегося выражения
Например:1063(⁸)=1·8³+0·8²+6·8¹+3·8⁰=563(¹⁰)
103(¹⁰)=147(⁸)
Шестнадцатеричная(0-9,А-F):
A(10),B(11),C(12),D(13),E(14),F(15)
Например:3AF(¹⁶)=3·16²+10·16¹+15·16⁰=943(¹⁰)
154(¹⁰)=9A(¹⁶)