<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>http://wiki.cabal.mx/index.php?action=history&amp;feed=atom&amp;title=Curso_de_Programaci%C3%B3n_en_C%2FProg66</id>
	<title>Curso de Programación en C/Prog66 - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.cabal.mx/index.php?action=history&amp;feed=atom&amp;title=Curso_de_Programaci%C3%B3n_en_C%2FProg66"/>
	<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog66&amp;action=history"/>
	<updated>2026-05-12T20:42:33Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.32.1</generator>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog66&amp;diff=5433&amp;oldid=prev</id>
		<title>Perseuz: /* Explicación */</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog66&amp;diff=5433&amp;oldid=prev"/>
		<updated>2014-05-10T18:09:47Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Explicación&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog66 | Función Recursivo]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog66 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_FANCY_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void a_binario( unsigned long n );&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  unsigned long numero;&lt;br /&gt;
  printf( &amp;quot;Que intero quieres convertir en binario (q para terminar)? &amp;quot; );&lt;br /&gt;
  while( scanf( &amp;quot;%lu&amp;quot;, &amp;amp;numero ) == 1 )&lt;br /&gt;
  {&lt;br /&gt;
    printf(&amp;quot;Equivalente Binario: &amp;quot;);&lt;br /&gt;
    a_binario( numero );&lt;br /&gt;
    putchar( &amp;#039;\n&amp;#039; );&lt;br /&gt;
    putchar( &amp;#039;\n&amp;#039; );&lt;br /&gt;
    printf( &amp;quot;Que intero quieres convertir en binario (q para terminar)? &amp;quot; );&lt;br /&gt;
  }&lt;br /&gt;
  printf( &amp;quot;Listo.\n&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void a_binario( unsigned long n )&lt;br /&gt;
{&lt;br /&gt;
  int r;&lt;br /&gt;
&lt;br /&gt;
  r = n % 2;&lt;br /&gt;
  if ( n &amp;gt;= 2 )&lt;br /&gt;
    a_binario( n / 2 );&lt;br /&gt;
  putchar( &amp;#039;0&amp;#039; + r );&lt;br /&gt;
&lt;br /&gt;
  return;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
 &lt;br /&gt;
 [rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog66 Prog66.c&lt;br /&gt;
 [rrc@Pridd CClase]$ ./Prog66&lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? 1&lt;br /&gt;
 Equivalente Binario: 1&lt;br /&gt;
 &lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? 2&lt;br /&gt;
 Equivalente Binario: 10&lt;br /&gt;
 &lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? 3&lt;br /&gt;
 Equivalente Binario: 11&lt;br /&gt;
 &lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? 4&lt;br /&gt;
 Equivalente Binario: 100&lt;br /&gt;
 &lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? 5&lt;br /&gt;
 Equivalente Binario: 101&lt;br /&gt;
 &lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? 55&lt;br /&gt;
 Equivalente Binario: 110111&lt;br /&gt;
 &lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? 44444555&lt;br /&gt;
 Equivalente Binario: 10101001100010101110001011&lt;br /&gt;
 &lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? q&lt;br /&gt;
 Listo.&lt;br /&gt;
 &lt;br /&gt;
=== Explicación ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Programación en C]]&lt;br /&gt;
[[Category:CCabal]]&lt;br /&gt;
[[Category:CursoC]]&lt;br /&gt;
Ejemplo para el número 4: El truco está en seguir el flujo de control hasta volver a main(). Notece que la variable r de uno a otro bloque, aunque se llama igual no es la misma. Se crea en cada bloque, posee su propia dirección de memoria y no es sobreescrita por la calculada en otro bloque.&lt;br /&gt;
&lt;br /&gt;
n = 4: &amp;lt;-------- Viene de main()&lt;br /&gt;
&lt;br /&gt;
a_binario (4) --------&amp;gt; n = 4&lt;br /&gt;
{&lt;br /&gt;
    int r;&lt;br /&gt;
    r = 4 % 2; --------&amp;gt; r = 0&lt;br /&gt;
    if (4 &amp;gt;= 2) &amp;lt;-- Verdadero&lt;br /&gt;
&lt;br /&gt;
        a_binario (4/2) --------&amp;gt; n = 2&lt;br /&gt;
        {&lt;br /&gt;
            int r;&lt;br /&gt;
            r = 2 % 2; --------&amp;gt; r = 0&lt;br /&gt;
            if (2 &amp;gt;= 2) &amp;lt;-- Verdadero&lt;br /&gt;
&lt;br /&gt;
                a_binario (2/2) --------&amp;gt; n = 1&lt;br /&gt;
                {&lt;br /&gt;
                    int r;&lt;br /&gt;
                    r = 1 % 2; --------&amp;gt; r = 1&lt;br /&gt;
                    if (1 &amp;gt;= 2) &amp;lt;-- Falso&lt;br /&gt;
                    putchar(&amp;#039;0&amp;#039; + 1)--------&amp;gt; Imprime 1&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
            putchar(&amp;#039;0&amp;#039; + 0)--------&amp;gt; Imprime 0&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    putchar(&amp;#039;0&amp;#039; + 0)--------&amp;gt; Imprime 0&lt;br /&gt;
    return;&lt;br /&gt;
} &amp;lt;-------- Vuelve el control a main()&lt;br /&gt;
&lt;br /&gt;
Impresión final: 100&lt;/div&gt;</summary>
		<author><name>Perseuz</name></author>
		
	</entry>
</feed>