Потому что компьютер работает в двоичной системе, а люди считают в десятичной. Но многие данные и команды компьютеру удобно давать именно в двоичной системе, которую для удобства чтения и краткости записи обычно переводят в уме в шестнадцатиричную или, реже, восьмеричную. Кроме того, программист должен представлять себе, как именно компьютер интерпретирует его команды и что он при этом на самом деле делает, это объяснит ему многие тонкости программирования. Вообще же знание систем счисления по сравнению со всем остальным, что нужно знать программисту - такая элементарщина, что не стоит и обсуждать
Ну как раз для погромиста будет не лишне (хотя бы иметь представление, как тот факт, что человек говорит прозой), но без фанатизма - х10, х2 и х16 вполне достаточно (за глаза). А вот зачем это штудируют в средней школе для меня большая загадка. Разве нет ничего более важного, чем вручную переводить одну СС в другую. Ведь именно эту работу должен (по идее) делать комп
Потому, что процессор и его окружение работает в двоичной системе. Теоретически возможны построения вычислительных машин в других системах счисления (например, троичной).
Что значит знать? Тебя никто не заставляет складывать восьмизначные HEX в уме. Просто нужно быть вкурсе: что такое регистры, сколько бит в байте, как представлены отрицательные числа и числа с плавающей точкой.