Bits and binary · Биты и двоичная система
Bits: the smallest piece of data
- A bit is one digit that is either
0or1. - Computers store everything — numbers, text, images — as bits.
- One bit alone is small, so we group many bits together.
Бит: наименьшая единица данных
- Бит — это одна цифра, которая может быть равна
0или1. - Компьютеры хранят всё — числа, текст, изображения — в виде битов.
- Один бит сам по себе мал, поэтому мы группируем много битов вместе.
Why computers use binary
- A computer chip has tiny switches. Each switch is on or off.
on=1andoff=0. So two states fit a chip perfectly.- Counting with only
0and1is called binary (base 2).
Почему компьютеры используют двоичную систему
- Микросхема компьютера содержит крошечные переключатели. Каждый переключатель находится в состоянии включено или выключено.
on=1иoff=0. Таким образом, два состояния идеально подходят для микросхемы.- Подсчет только с использованием
0и1называется двоичной системой (основание 2).
How binary counts
- Our normal numbers use base 10 (digits
0–9). - Binary uses base 2. Each place is worth twice the place on its right.
- The places are
8 4 2 1. So1101means8 + 4 + 0 + 1 = 13.
Как ведется счет в двоичной системе
- Наши обычные числа используют основание 10 (цифры
0–9). - Двоичная система использует основание 2. Каждая позиция стоит вдвое больше, чем позиция справа от нее.
- Позиции обозначаются как
8 4 2 1. Значит,1101означает8 + 4 + 0 + 1 = 13.
place: 8 4 2 1
bits: 1 1 0 1 -> 8 + 4 + 0 + 1 = 13
Python can convert for you
bin(13)gives the string'0b1101'. The0bjust means "this is binary".int("1101", 2)reads"1101"as base 2 and gives13.- These two functions go in opposite directions.
Python может выполнить преобразование за вас
bin(13)возвращает строку'0b1101'. Обозначение0bпросто означает "это двоичное число".int("1101", 2)считывает"1101"как число в основании 2 и возвращает13.- Эти две функции работают в противоположных направлениях.
print(bin(13)) # decimal -> binary
print(int("1101", 2)) # binary -> decimal
Fixed bits and overflow
- A computer keeps a number in a fixed number of bits.
- With 4 bits you can store
0to15— that is2**4 = 16different values. - If a result is too big, it wraps around back to
0. This is overflow.
Фиксированное количество битов и переполнение
- Компьютер хранит число в фиксированном количестве битов.
- С помощью 4 битов можно хранить значения от
0до15— всего2**4 = 16различных значений. - Если результат слишком велик, он перекручивается обратно на
0. Это называется переполнением.
print(2 ** 4) # how many values 4 bits hold = 16
print((15 + 3) % 16) # 18 is too big, so it wraps to 2
Common mistakes
nbits store2**ndifferent values, from0to2**n - 1.- Binary is base 2: each place is worth twice the one to its right.
Распространенные ошибки
nбитов хранят2**nразличных значений, от0до2**n - 1.- Двоичная система — это основание 2: каждая позиция стоит вдвое больше, чем позиция справа от нее.
Now you try
- Type your code below and press Run to see the output.
- Press Check answer to test it.
Теперь попробуйте сами
- Введите свой код ниже и нажмите Запустить, чтобы увидеть вывод.
- Нажмите Проверить ответ, чтобы протестировать её.
Binary counts in powers of 2 · Двоичные счеты в степенях 2
Each bit is a power of two; lit bits add up to the value. · Каждый бит — это степень двойки; установленные биты складываются до значения.
Use bin(...) to print the binary form of 20. The output should look like 0b10100. · Используйте bin(...) для вывода двоичной формы числа 20. Вывод должен выглядеть как 0b10100.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
The binary string "110" is a number. Use int(s, 2) to print it as a normal (decimal) number. · Двоичная строка "110" представляет число. Используйте int(s, 2) для вывода его в виде обычного (десятичного) числа.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
A counter has 5 bits, so it holds 2**5 = 32 values. Store 2**5 in size. Then store (30 + 5) % size in result to show how the value wraps around (overflow). · Счётчик имеет 5 бит, поэтому он хранит 2**5 = 32 различных значений. Сохраните 2**5 в size. Затем сохраните (30 + 5) % size в result, чтобы показать переполнение (wrap-around).
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.