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