123 = 1 * 100 + 2 * 10 + 3 * 1,
что эквивалентно следующему:
123 = 1 * 102 + 2 * 101 + 3 * 100
Помните, что любое число в нулевой степени равняется 1.
Другие системы счисления...60
Использование числа 10 в качестве основания нашей системы счисления объясняется, по всей вероятности, тем, что издревле для подсчётов человек использовал пальцы рук. Учитывая особенности нашей анатомии, удобной альтернативной системой счисления можно было бы выбрать двадцатеричную[ 10 ] ( т.е. с основанием 20 ).
Если бы наша вычислительная система была заимствована у собак, то она была бы восьмеричной ( ещё один "разряд", находящийся на задней части каждой лапы, не учитывается ). Эта система счисления работала бы не менее хорошо:
12310 = 1* 82 + 7* 81 + 3* 80 = 1738
Индексы 10 и 8 указывают систему счисления: 10 — десятичная, 8 — восьмеричная. Основанием системы счисления может быть любое положительное число.
Двоичная система счисления...60
У компьютеров, видимо, пальцев поменьше ( может быть, поэтому они такие недалёкие? ). Они предпочитают пользоваться двоичной системой счисления. Число 123 переводится в двоичную систему таким образом:
12310 = 0*27+ 1*26 + 1*25 + 1*24 + 1*23 + 0*22 + 1*21 + 1*20 = 0*128 + 1*64 + 1*32 + 1*16 + 1*8 + 0*4 + 1*2 + 1*1 = 011110112
______________________
10Что и было сделано у некоторых народов, например у майя или чукчей. — Прим. ред.
_________________
60 стр. Часть 1. Первое знакомство с С++
Существует соглашение, которое гласит, что в записи двоичных чисел используются 4, 8, 16, 32 или даже 64 двоичных цифр, даже если старшие цифры — нули. Внутреннее представление числа в компьютере строится именно таким образом.
Понятие разряда применяется к числам, кратным десяти, двоичный же разряд называется битом. Восемь битов составляют байт, а слово обычно представляется или двумя, или четырьмя байтами.
Поскольку основа двоичной системы счисления очень мала, для представления чисел необходимо использовать слишком большое количество битов. Для представления таких обычных чисел, как 12310, неудобно использовать выражения вида 011110112. Поэтому программисты предпочитают представлять числа блоками из четырёх битов.
С помощью одного четырёхбитового блока можно представить любое число от 0 до 15, и такая система счисления называется шестнадцатеричной ( hexadecimal ), т.е. системой по основанию 16. Часто употребляют её сокращённое название hex.
В шестнадцатеричной системе обозначения цифр от 0 до 9 остаются теми же, а числа от 10 до 15 представляются с помощью первых шести букв алфавита: А вместо 10, В вместо 11 и т.д. Следовательно, 12310 — это 7В16.
123 = 7 * 161 + В ( т.е. 11 ) * 160 = 7В16
Поскольку программисты предпочитают представлять числа с помощью 4, 8, 16 или 32 битов, шестнадцатеричные числа состоят соответственно из 1, 2, 4 или 8 шестнадцатеричных разрядов ( даже если ведущие разряды равны 0 ).
В заключение замечу, что, так как терминал не поддерживает нижний индекс, записывать шестнадцатеричные символы в виде 7В16 неудобно. Даже в том текстовом редакторе, который я использую сейчас, довольно неудобно всякий раз менять режимы шрифтов для ввода всего двух символов. Поэтому программисты договорились начинать шестнадцатеричные числа с 0х ( это странное обозначение было придумано ещё во время разработки языка С ). Таким образом, 7В16 равно 0x7В. Следуя этому соглашению, 0x7В равно 123, тогда как 0x123 равно 291.
К шестнадцатеричным числам можно применять все те же математические операторы, что и к десятичным. Просто нам трудно выполнить в уме умножение чисел 0хС * 0хЕ потому, что таблица умножения, которую мы учили в школе, применима только к десятичной системе счисления.
Выражения с римскими числами...61
Интересно, что некоторые системы чисел значительно препятствовали развитию математики. К таким относится и так называемая римская система. Сложить два римских числа не очень сложно: