Lo tienes todo mal. Lo que has hecho es convertir el binario a Gray. Para convertir el Gray a binario se respeta el bit de más a la izquierda (ese es el mismo en Gray que en binario) y vas sumando cada bit binario generado con el siguiente bit del código Gray descartando los acarreos.