
1⁵ 0⁴ 1³ 0² 1¹ 0⁰ = 1 · 2⁵ + 0 · 2⁴ + 1 · 2³ + 0 · 2² + 1 · 2¹ + 0 · 2⁰ = 32 + 0 + 8 + 0 + 2 + 0 = 42₁₀
Задание 235 = 32 + 2 + 1 = 2⁵ + 2¹ + 2⁰ = 100 000 + 10 + 1 (в столбик - двоичное сложение) = 100011₂
Задание 3Стоит помнить, что:
1 + 1 = 10
1 + 1 + 1 = 11
1 + 1 + 1 + 1 = 100
Это происходит, потому что в 2-й системе счисления всего два числа - 0 и 1. В 10-й системе счисления это выглядело бы примерно так:
...
1 + 9 = 10
...
1 + 19 = 20
...
1 + 99 = 100
То есть переполнение числа приводит к тому, что цифра слева увеличивается на единицу. В случае, если есть девятка - то цифра слева увеличивается на 1.
999 + 1 = 1 0 0 0
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
setlocale(LC_ALL,"russian");
cout << "Введите размер массива: ";
int N;
cin >> N;
N=N--;
unsigned int a[N];
for (int b = 0; b<=N; b++)
{
cout << "Введите число номер " << b << ": ";
cin >> a[b];
}
for(int i=0; i<=N; i++)
{
if(a[i]<=255)
{
cout << "Количество разрядов числа " << a[i] << " - 8" << endl;
}
if(a[i]>=256 && a[i]<=65535)
{
cout << "Количество разрядов числа " << a[i] << " - 16" << endl;
}
if(a[i]>=65536 && a[i]<=4294967295)
{
cout << "Количество разрядов числа " << a[i] << " - 32" << endl;
}
}
system("pause");
return 0;
}
Надеюсь, правильно понял определение разрядов.
Есть пожелания - в комментарии