Hola otra vez:
Se puede decir que hice trampa ya que solo corté unas líneas de una página y la pegué aquí
También tengo el inverso, y también ocupa pocas líneas, pero como derkenuke lo quiere hacer, voy a darle esas ideas:
De #rrggbb el rojo se corresponde a n.substring(1, 3);
La posición de la primera r en la cadena de valores hexadecimales la multiplicas por 16 y le sumas la posición de la segunda.
Si necesitan ayuda ...
Saludos