Octal y Hex se usan porque son fáciles de convertir a binarios pero más legibles. Cada dígito hexadecimal se asigna a 4 bits binarios, y cada dígito octal representa 3, y puede convertir un dígito a la vez. Entonces, si veo 0xf11f, sé que es 1111000100011111 sin necesidad de hacer ningún cálculo.
Para máquinas modernas que usan palabras 8. 16. 32 y 64 bits, una palabra se puede presentar con exactamente 2, 4, 8 o 16 dígitos hexadecimales. Especialmente para números de 8 y 16 bits, esto es bastante útil ya que la mente humana puede reconocer y trabajar con estos patrones bastante cortos: con un poco de práctica puede hacer aritmética hexadecimal, y es muy fácil volver a convertir a binario. Lo mismo es cierto para octal si usa palabras de datos de 6 o 12 bits, pero esto es muy raro ahora. El único uso frecuente de octal que conozco es chmod, y eso es por razones históricas.
Así que usamos hexadecimal y octal cuando necesitamos preocuparnos por la representación binaria precisa de los datos. El código que usa operaciones bit a menudo usa constantes hexadecimales. Del mismo modo, los colores de 24 bits a menudo se representan en hexadecimal porque tiene 8 bits por color de canal, por lo que es mucho más conveniente que usar decimal.