Здесь полная аналогия с тем, как мы складываем в обычной, десятичной системе. Объясню лучше на примере.
Мы знаем, что можно складывать числа "в столбик":
24
+13
37
то есть строго разряд под разрядом. Но что мы делаем, когда в одном разряде получается число, больше 9? Правильно, переносим десяток в старший разряд!
15
+19
24 (не 214!)
Здесь та же ситуация, отличие только в том, что максимальная цифра в разряде равна 7 (как в нашей десятичной записи максимальная цифра в записи разряда равна 9, а следующее число - 10 - уже состоит из двух цифр в записи - 1 и 0). Значит, если мы хотим записать число 8 в восьмеричной записи, мы напишем это как 10₈ (нижний индекс показывает систему счисления)
А теперь попробуем сложить два числа в восьмеричной системе:
21₈
+ 16₈
37₈
Разряд под разрядом, ничего сложно. А давайте возьмем пример поинтереснее:
77₈
+ 77₈
7₈ + 7₈ = 16₈, это значит, что в младшем разряде мы напишем 6, а десятки припишем в старший разряд.
1
77₈
+ 77₈
*6
Так как 7₈ + 7₈ + 1₈ = 17₈, то 7 записываем в свой, соответствующий, разряд, а единицу в старший, получив при этом ответ 176₈
В правильности ответа можем убедиться, переведя это все в десятичную запись: 77₈ = 63, 176₈ = 126, 63 + 63 = 126, все верно.
Единственный дискомфорт при таком методе - непривычные результаты сложения. Например, 7 + 7 = 14 (в десятичной записи), но в примере выше 7₈ + 7₈ = 16₈. Поэтому тут нужно быть аккуратным!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <cstdio>
using namespace std;
void main()
{
setlocale(LC_ALL, "Russian");
int i;
double s = 0, k, size;
double mas[200];
cout << "Введите размерность массива:";
cin >> size;
srand(time(NULL));
for (i = 0; i < size; i++)
{
mas[i] = 0 + rand() % 100; cout << mas[i] << " ";
}
cout << endl;
for (i = 0; i < size; i++)
{
s = s + mas[i];
}
k = s / size;
cout << "Среднее арифметическое:" << k <<endl;
system("pause");
}
Объяснение:
Здесь полная аналогия с тем, как мы складываем в обычной, десятичной системе. Объясню лучше на примере.
Мы знаем, что можно складывать числа "в столбик":
24
+13
37
то есть строго разряд под разрядом. Но что мы делаем, когда в одном разряде получается число, больше 9? Правильно, переносим десяток в старший разряд!
15
+19
24 (не 214!)
Здесь та же ситуация, отличие только в том, что максимальная цифра в разряде равна 7 (как в нашей десятичной записи максимальная цифра в записи разряда равна 9, а следующее число - 10 - уже состоит из двух цифр в записи - 1 и 0). Значит, если мы хотим записать число 8 в восьмеричной записи, мы напишем это как 10₈ (нижний индекс показывает систему счисления)
А теперь попробуем сложить два числа в восьмеричной системе:
21₈
+ 16₈
37₈
Разряд под разрядом, ничего сложно. А давайте возьмем пример поинтереснее:
77₈
+ 77₈
7₈ + 7₈ = 16₈, это значит, что в младшем разряде мы напишем 6, а десятки припишем в старший разряд.
1
77₈
+ 77₈
*6
Так как 7₈ + 7₈ + 1₈ = 17₈, то 7 записываем в свой, соответствующий, разряд, а единицу в старший, получив при этом ответ 176₈
В правильности ответа можем убедиться, переведя это все в десятичную запись: 77₈ = 63, 176₈ = 126, 63 + 63 = 126, все верно.
Единственный дискомфорт при таком методе - непривычные результаты сложения. Например, 7 + 7 = 14 (в десятичной записи), но в примере выше 7₈ + 7₈ = 16₈. Поэтому тут нужно быть аккуратным!