Почему мы используем другие базы, которые не являются ни двоичными (для компьютеров), ни десятичными (для людей)?
Компьютеры в конечном итоге представляют их в двоичном формате, и люди настоятельно предпочитают получать их десятичное представление. Почему бы не придерживаться этих двух баз?
numeral-representations
Quora Feans
источник
источник
Ответы:
Восьмеричное (основание-8) и шестнадцатеричное (основание-16) числа являются разумным компромиссом между компьютерами, использующими двоичную (основание-2) систему, и десятичной (основание-10) системой, которую использует большинство людей.
Компьютеры плохо разбираются в нескольких символах, поэтому для них подходит база 2 (где у вас всего 2 символа), в то время как более длинные строки, числа с большим количеством цифр, представляют меньшую проблему. Люди очень хороши с несколькими символами, но не так хороши в запоминании длинных строк.
Восьмеричное и шестнадцатеричное используют преимущество человека, заключающееся в том, что они могут работать с большим количеством символов, в то время как он все еще легко конвертируется назад и вперед между двоичными числами, потому что каждая шестнадцатеричная цифра представляет 4 двоичные цифры ( ), а каждая восьмеричная цифра представляет 3 ( 8 = 2 3 ). Я думаю, что hex побеждает восьмеричное, потому что его легко использовать для представления байтов и 16/32/64-битных чисел.16=24 8=23
источник
Мы используем их для удобства и краткости.
Hex и Oct - действительно выдающиеся сжатые представления двоичного файла. Hex, в частности, хорошо подходит для сжатых форм адресов памяти. Каждая октавная цифра напрямую отображается в 3 двоичных разряда, а каждая шестнадцатеричная цифра - в 4 двоичных разряда. Это результат того, что основания (8 и 16) имеют степени 2 ( и 2 4 ). Например, я могу записать двоичный код 01101001 в виде шестнадцатеричного числа 69 или, если я добавлю его с начальным нулем в виде окт 151 .23 24 01101001 69 151
Итак, скажем, вам нужны 64-битные адреса памяти. Вы можете просмотреть все 64 двоичных разряда или сжать их до 16 шестнадцатеричных цифр. Часто вам не нужно сравнивать несколько адресов, чтобы увидеть, совпадают ли они или смежные. Вы бы предпочли посмотреть на 64 бит или 16 цифр?
источник
Двоичные числа в тексте - пустая трата места.
источник
Вступление
Как уже упоминалось в других ответах, могут быть разные обозначения для разных целей и ограничений. Обозначения на самом деле представляют собой кодировку в виде последовательности символов, и мы знаем из изучения алгоритмов и структуры данных, что есть много способов, которыми мы можем кодировать абстрактные понятия, например, список или набор, в зависимости от того, что мы хотим с ним делать , В этом случае это в основном алгоритмическое удобство.
При рассмотрении представления чисел применяется то же самое. Внутри компьютера все является двоичным на самом низком уровне, хотя для некоторых приложений могут использоваться странные представления.
За пределами компьютера мы используем любое понятное человеку представление, в зависимости от удобства человека относительно вида представленной ценности. Двоичное представление часто слишком длинное и неструктурированное, чтобы его можно было легко прочитать и записать, что позволяет заменить его на шестнадцатеричное или восьмеричное. Выбор часто может быть связан с тем, как информация структурирована в двоичном слове, которое не обязательно должно представлять число.
Но, рассматривая только цифры , то есть представление чисел, стоит посмотреть на другие системы представления чисел, чтобы понять, что основными факторами являются: физиология, привычка и удобство.Удобство, конечно, является ведущим фактором, создающим разнообразие, поскольку оно зависит от контекста использования.
Более широкий взгляд
Суть вопроса, похоже, никоим образом не ограничена компьютерами, а люди использовали и продолжают использовать несколько других систем нумерации. Некоторые из них даже используются в компьютерах, например, при работе с длинными целыми числами (не говоря уже о нецелых числах ).
Первое замечание состоит в том, что когда люди считают тысячи или миллионы как единое целое, это все еще считается десятичным числом, потому что это степени 10. Поэтому можно задаться вопросом, почему восьмеричное или шестнадцатеричное не следует считать просто вариацией двоичного числа. Одной из возможных причин может быть количество символов, используемых для представления чисел (хотя это спорный вопрос, как мы увидим в других системах).
Затем, что касается людей, они используют несколько систем в базе 5, называемых кинарными системами . На самом деле, большинство из этих систем имеют две базы, вторая с двумя или четырьмя, чередующаяся с базовой пятью, что делает их эквивалентными основанию 10 (десятичное) или основанию 20 (восьмое). Угадайте, откуда это приходит :)
Эти двухосновные системы называются биквинарными или квадрикунарными системами. Чистая квина редко используется.
Римская цифра может рассматриваться как бинарная система (которая показывает, как с ними делать арифметику). Китайские и японские счеты используют би-квинари. Quadri-Quinary был использован майя.
Причин для использования системы, вероятно, много. Одна веская причина в том, что это был первый местный проект, и теперь люди привыкли к нему. Например, можно также задаться вопросом, почему англоговорящие люди все еще используют чрезвычайно странную систему нумерации при попытке измерить расстояния. Можно утверждать, что это вопрос нескольких единиц, а не нумерации, но это очень слабое замечание. Числа используются в основном для измерения вещей.
Другими причинами сохранения системы является удобство в данном контексте. Может быть компромисс между количеством различных символов или позиций на счетах и количеством символов, необходимых для формирования достаточно больших чисел. База 2 работает с 2 различными символами, но имеет много случаев, что может быть неудобно для представления материала. Vigesimal base 20 потребует двадцать символов и очень большие таблицы умножения, которые люди не помнят. Но би-квинарная или квадри-кинарная система намного более управляема, особенно для построения счётов. Чистая система семейств, вероятно, была бы еще лучше, но она идет вразрез с привычками и интуицией, основанными на физиологии. И всегда приятно иметь возможность считать пальцами, когда мы не знаем ничего лучше.
Но это еще не все.
Одной из очень старых и очень распространенных систем является система шестидесятых, используемая для измерения времени и углов (но мы знаем, что они связаны через вращение Земли). Он использует основание 60, но не использует 60 символов, поскольку это слишком много. Поэтому он использует другую систему для представления своих синболов (например, десятичную систему).
Круг можно разделить на 6 частей, соответствующих углам 60 градусов, которые проще всего построить с равносторонними треугольниками. Тогда каждый градус составляет 60 минут дуги, каждый делится на 60 секунд.
Согласно википедии
Учитывая происхождение, это была довольно удобная система, в то время как математика едва вступала в детство. Не только угол 60⁰ легко рисовать, но и угол 60 имеет много факторов, так что он позволяет делить на целые числа без остатка.
Но есть и другие способы добраться до 60 лет, например, видно-тройная система вавилонян .
Почему мы до сих пор используем половозрелую систему. Я думаю, что мы просто привыкли к этому, и у нас может быть слишком много конфликтующих вопросов, чтобы изменение было полностью оправданным.
Интересно отметить, что существует большое взаимодействие между системами нумерации и системами единиц. Но этого и следовало ожидать, так как мера играет важную роль для чисел. Это заметно в противопоставлении десятичной и двоичной метрик для объема памяти .
источник
Компьютеры понимают двоичные числа, а в двоичном коде веса числа имеют степень 2, поэтому количество цифр для представления числа может быть большим в зависимости от числа.
Скажем, 64 в десятичном виде могут быть представлены 7 битами, тогда как для представления числа 5000 нам требуется 13 бит.
Восьмеричная и шестнадцатеричная системы счисления представляют собой компактный способ представления двоичного числа.
источник
[What advantage is there to using a base different from ten or (a power of) two?]
- или как еще вы интерпретируетеWhy not stick to [bases 2 and 10]?
?