4 числа => каждое число = 32/4 = 8 бит
1. 11001100.10011000.10111110.01000111
2. 11011110.11000011.10100010.00110010
Сейчас переводим из двоичной в 10 по следующему алгоритму:
Записываем двоичное число: 11001100. Сейчас начиная с ПРАВОГО конца, помечаем разряды(начиная с 0!). Я буду отмечать в фигурных скобках. Получаем:
11001100 = 1{7} 1{6} 0{5} 0{4} 1{3} 1{2} 0{1} 0{0}
И сейчас, чтобы найти десятичный эквивалент двоичному числу, мы считаем сумму вида: берем двоичное число(1 или 0) и умножаем его на 2 в степени разряда. Т.е.:
11001100 = 1*2^7 + 1*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 0*2^0 = 128 + 64 + 0 + 0 + 8 + 4 + 0 + 0 = 204
Точно так же делаем для всех оставшихся чисел. Т.е.:
10011000 = 1*2^7 + 1*2^4 + 1*2^3 = 128 + 16 + 8 = 152
10111110 = 1*2^7 + 1*2^5 + 1*2^4 + 1*2^3 + 1*2^2 + 1*2^1 = 128 + 32 + 16 + 8 + 4 + 2 = 190
01000111 = 1*2^6 + 1*2^2 + 1*2^1 + 1*2^0 = 64 + 4 + 2 + 1 = 71
В итоге, получаем IP адрес: 204.152.190.71
Точно так же делаем и для второго адреса:
11011110 = 1*2^7 + 1*2^6 + 1*2^4 + 1*2^3 + 1*2^2 + 1*2^1 = 128 + 64 + 16 + 8 + 4 + 2 = 222
11000011 = 1*2^7 + 1*2^6 + 1*2^1 + 1*2^0 = 128 + 64 + 2 + 1 = 195
10100010 = 1*2^7 + 1*2^5 + 1*2^1 = 128 + 32 + 2 = 162
00110010 = 1*2^5 + 1*2^4 + 1*2^1 = 32 + 16 + 2 = 50
И получаем следующий адрес: 222.195.162.50
В PascalABC.NET есть много что готового. В частности, используя новые возможности, можно записать всё одной (вернее, двумя) строчками:
Код (PascalABC.NET):
##
ArrRandomInteger.Select((val, ind) -> Format('a[{0}] = {1}', ind, val)).Print(NewLine)
Пример вывода:
a[0] = 83
a[1] = 6
a[2] = 58
a[3] = 61
a[4] = 64
a[5] = 49
a[6] = 59
a[7] = 9
a[8] = 83
a[9] = 75
Более традиционный (в стиле "старого Паскаля") подход можно реализовать, например, так:
Код (PascalABC.NET):
var
a: array[1..10] of integer;
i: integer;
begin
for i := 1 to 10 do
begin
a[i] := random(101);
writeln('a[', i, '] = ', a[i]);
end;
end.
Пример вывода:
a[1] = 7
a[2] = 21
a[3] = 15
a[4] = 78
a[5] = 91
a[6] = 72
a[7] = 63
a[8] = 56
a[9] = 38
a[10] = 81