11001101₂ = 315₈
100000011₂ = 403₈
110110110₂ = 666₈
1237₈ = 29F₁₆
3210₈ = 688₁₆
41562₈ = 4372₁₆
Объяснение:
Таблица триад:
0 - 000
1 - 001
2 - 010
3 - 011
4 - 100
5 - 101
6 - 110
7 - 111
11001101₂ = 315₈
Разбиваем число на триады (отделяем по 3 символа, начиная справа, если символов не хватает, дописываем 0 слева)
Переводим числа используя таблицу триад
Записываем снизу вверх
101 - 5
001 - 1
011 - 3
100000011₂ = 403₈
011 - 3
000 - 0
100 - 4
110110110₂ = 666₈
110 - 6
110 - 6
110 - 6
Таблица тетрад:
0 - 0000
1 - 0001
2 - 0010
3 - 0011
4 - 0100
5 - 0101
6 - 0110
7 - 0111
8 - 1000
9 - 1001
10 - 1010
11 - 1011
12 - 1100
13 - 1101
14 - 1110
15 - 1111
1237₈ = 29F₁₆
Переведём каждую цифру в триаду
1 - 001
2 - 010
3 - 011
7 - 111
Запишем их в строку и переформируем в тетрады (отделяем по 4 символа, начиная справа, если символов не хватает, дописываем 0 слева)
001 010 011 111
Переводим числа используя таблицу триад
Записываем снизу вверх
1111 - 15
1001 - 9
0010 - 2
3210₈ = 688₁₆
3 - 011
2 - 010
1 - 001
0 - 000
011 010 001 000
1000 - 8
1000 - 8
0110 - 6
41562₈ = 4372₁₆
4 - 100
1 - 001
5 - 101
6 - 110
2 - 010
100 001 101 110 010
0010 - 2
0111 - 7
0011 - 3
0100 - 4
В качестве цифр шестнадцатеричной системы счисления обычно используются цифры от 0 до 9 и латинские буквы от A до F.
A₁₆ = 10₁₀ B₁₆ = 11₁₀ C₁₆ = 12₁₀ D₁₆ = 13₁₀ E₁₆ = 14₁₀ F₁₆ = 15₁₀
Таблицы триад и тетрад - это перевод первых чисел 10 системы счисления в двоичную с дописыванием 0 слева
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
short int year[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int month = 0, day = 0, daysUntilNewYear = 0;
while (month == 0)
{
cout << "Введите месяц: ";
cin >> month;
if (month < 1 || month > 12)
{
month = 0;
cout << "В году лишь 12 месяцев, повторите ввод" << endl;
}
}
while (day == 0)
{
cout << "Введите день: ";
cin >> day;
if (day > year[month - 1] || day < 1)
{
day = 0;
cout << "В выбранном месяце " << year[month - 1] << " дней, повторите ввод" << endl;
}
}
for (int i = month - 1; i < 12; i++)
{
daysUntilNewYear += year[i];
}
daysUntilNewYear -= day - 1;
cout << "До Нового Года осталось " << daysUntilNewYear << " дней"<< endl;
system("pause");
return 0;
}
Если через case делать, то будет больше кода и он будет менее понятен - смысла в этом нет, поэтому сделал через while.
После второго применения получаем: ТСНР