En "C" un int y un char son lo mismo
Lo que tu haces es multiplicar en cada iteración el contenido de rojo por 10,además de sumar el contenido del bufferEso era correcto, José. En cada iteración multiplicas por 10 lo que haya (mueves un dígito a la izquierda) y sumas un nuevo valor en unidades.