как разобраться в двоичной системе счисления, может есть какая-то логика в расположении нулей и единиц?
хотелось бы завидев комбинацию 010010 понимать что это, а не гуглить.
youri_ich
18 уровень
двоичная система счисления
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
youri_ich
28 ноября 2023, 09:29
Я не буду пересчитывать все увиденные числа. Просто тема мне показалась очень непонятной, но интересной. Теперь буду знать от куда единицы растут
0
Денис Enterprise Java Developer
28 ноября 2023, 08:52
https://www.youtube.com/watch?v=zELAfmp3fXY
Возможно так будет проще.
А понимать на глаз что за число там кроется... зачем?) Перевод между двоичной и десятичной системами не сложная штука, есть масса онлайн калькуляторов так же. Ты же не машина в конце концов.
+1
hidden #3303140
28 ноября 2023, 08:46решение
Давай сначала разберёмся с десятичной. Что делает её десятичной? То, что в ней для записи любого числа используются десять цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Как ты записываешь число, которое идёт после 9? Если не задумываться, то ты просто ответишь, после девяти идёт десять. А если задуматься, то можно сказать, что ты увеличиваешь следующий разряд на 1, а текущий разряд начинаешь с нуля.
10.
И такая же логика в любой системе счисления. Например, в шестнадатеричной цифр не десять, а шестнадцать: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. То есть цифры закончатся на десятичном числе "15", как тогда записать десятичное число 16? Точно так же: увеличиваем следующий разряд на 1, а в текущем разряде пишем 0. Получается, что 16₁₀ = 10₁₆.
Ну а в двоичной системе счисления цифр всего две, 0 и 1. Получается, что разряд будет увеличиваться достаточно часто. Как считать в такой логике?
0₁₀ = 0₂
1₁₀ = 1₂
2₁₀ = 10₂ // увеличиваем следующий разряд, текущий начинаем с нуля
3₁₀ = 11₂
4₁₀ = 100₂
И так далее: 101, 110, 111, 1000, 1001, 1010, 1011...
Можно заметить, что любая степень двойки в десятичной системе счисления будет представлена 1 и соответствующим числом нулей:
1₁₀ = 2₁₀⁰ = 1₂ // единица и ноль нулей
2₁₀ = 2₁₀¹ = 10₂ // единица и один ноль
4₁₀ = 2₁₀² = 100₂ // единица и два нуля
8₁₀ = 2₁₀³ = 1000₂ // единица и три нуля и тд
Значит, чтобы перевести двоичное число в десятичное, надо каждую единицу в записи двоичного числа умножить на 2 в степени, равной позиции этой единицы при отсчете справа налево. Звучит запутанно, но ничего сложного. Возьмём случайное двоичное число и пронумеруем его символы справа налево, начиная с нуля. И в этом порядке умножим их на соответствующие степени двойки
1110110101₂ = 1₁₀ * 2₁₀⁰ + 0₁₀ * 2₁₀¹ + 1₁₀ * 2₁₀² + 0₁₀ * 2₁₀³ + 1₁₀ * 2₁₀⁴ + 1₁₀ * 2₁₀⁵ + 0₁₀ * 2₁₀⁶ + 1₁₀ * 2₁₀⁷ + 1₁₀ * 2₁₀⁸ + 1₁₀ * 2₁₀⁹ = 1 + 4 + 16 + 32 + 128 + 256 + 512 = 949₁₀
+2