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
В двоичной системе счисления ip адрес представляется в виде четырех чисел по 8 бит:
11011110 11000011 10100010 00110010
Переведем каждое число в десятичную систему счисления:
11011110₁₀ = 1*2⁷+1*2⁶+0*2⁵+1*2⁴+1*2₃+1*2²+1*2¹+0*2⁰= 128+64+0+16+8+4+2+0 = 222₂
11000011₁₀ = 1*2⁷+1*2⁶+0*2⁵+0*2⁴+0*2³+0*2²+1*2¹+1*2⁰ = 128+64+0+0+0+0+2+1 = 195₂
10100010₁₀ = 1*2⁷+0*2⁶+1*2⁵+0*2⁴+0*2³+0*2²+1*2¹+0*2⁰ = 128+0+32+0+0+0+2+0 = 162₂
00110010₁₀ = 0*2⁷+0*2⁶+1*2⁵+1*2⁴+0*2³+0*2²+1*2¹+0*2⁰ = 0+0+32+16+0+0+2+0 = 50₂
Получим результат: 222.195.162.50
Поделитесь своими знаниями, ответьте на вопрос:
умоляю , , . напишите функцию double power (double a, int n) (c/c++), function power (a: real; n: longint): real (pascal), вычисляющую значение a ^n. входные данные вводится 2 числа - a (вещественное) и n (целое неотрицательное выходные данные необходимо вывести значение an.
var
i:longint;
p:real;
begin
if n=0 then power:=0
else begin
p:=a;
for i:=2 to n do p:=p*a;
power:=p
end
end;
var
a:real;
n:integer;
begin
Write('Введите основание и показатель степени: ');
Read(a,n);
Writeln('Результат: ',power(a,n))
end.
Пример
Введите основание и показатель степени: 13.64 6
Результат: 6440005.25769131