напишите программу, которая бы выполняла перевод(написано должно быть на python
единиц измерения.
в программе должны быть:
1. ввод значения – функция
2. перевод единиц измерения.
3. вывод значения – функция
на свое усмотрение, можете усовершенствовать программу, дополнив разными функциями. выбор единиц измерения
на ваше усмотрение.
пример выполненной работы
например, необходимо перевести единицы измерения
количества информации. воспользуемся таблицей на снимке
допустим, переводим гигабайты в мегабайты. то число,
которое ввел пользователь, следует умножить на 1024, согласно таблице.
в результате будет такая формула:
m = n*1024,
где n – число, которое ввел пользователь,
а m – результат вычислений.
чтобы выполнить обратное преобразование, т. е. из мегабайтов в гигабайты, необходимо делить на 1024. таким
образом, формула имеет вид:
m = n÷1024,
где n – число, которое ввел пользователь,
а m – результат вычислений.
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