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
# python 3.6.2
while True:
reelLength = int(input('Введите длину мотка (от 1 до 100): '))
if reelLength <= 100 and reelLength >= 1:
break
else:
print('Неверный ввод!')
reelNum = 0
while True:
segmentLength = int(input('Введите длину куска (от 1 до 100): '))
if segmentLength <= 100 and segmentLength >= 1:
if segmentLength < reelLength:
reelLength -= segmentLength
reelNum += 1
continue
if segmentLength == reelLength:
reelLength -= segmentLength
reelNum += 1
print(f'Количество кусков: {reelNum:d}; Длина остатка: {reelLength:d}')
break
else:
print('Неверный ввод!')
Объяснение:
Текст, даты, формулы, числа размещенные в ячейках электронной таблицы.