Существуют два перевода 1. универсальный, который годится для перевода из любой системы счисления в любую. Число из исходной системы надо перевести в основную, десятичную систему 754_8 = 7*8^2+5*8^1+4*8^0 = 492_10 и затем перевести в целевую систему счисления 492/16=30 остаток от деления 12 - шестнадцатеричная цифра С 30/16=1 остаток от деления 14 - шестнадцатеричная цифра E 1/16=0 остаток от деления 1 - шестнадцатеричная цифра 1 754_8 = 492_10 = 1EC_16 - и второй попроще, основанный на том, что и восьмеричная и двоичная системы - это системы с основанием, равным степени двойки, и перевод из них в двоичную и обратно очень прост Каждая восьмеричная цифра соответствует трём двоичным, каждая шестнадцатеричная цифра - четырём двоичным, и преобразования выполняются без арифметических действий, простой перегруппировкой бит из групп по 3 в группы по 4 754_8 = 111 101 100_2 = 1 1110 1100_2 = 1EC_16
#include <conio.h>
#include <time.h>
using namespace std;
void main()
{
srand(time(NULL));
setlocale(0, "");
int arr[17];
int a, b, chet=0, nechet = 0;
cout << "Введите диапазон ." << endl << "Нижняя граница диапазона: "; cin >> a; cout << "Верхняя граница диапазона: "; cin >> b; cout << endl;
for (int i = 0; i < 17; ++i)
{
arr[i] = a + rand() % (b-a+1);
cout <<" "<<arr[i];
}
for (int i = 0; i < 17; ++i)
{
if (arr[i] % 2 == 0) chet++;
else nechet++;
} if (chet > nechet)
cout << " \n Четных больше";
else if (nechet>chet)
cout << "\n Нечетных больше";
else cout << "\n Одинаковое количество четных и нечетных";
_getch();
}