No hay ningún especificador de formato directo para esto en el lenguaje C. Aunque escribí este breve fragmento de Python para ayudarlo a comprender el proceso paso a paso para obtener el suyo propio.
#!/usr/bin/python
dec = input("Enter a decimal number to convert: ")
base = 2
solution = ""
while dec >= base:
solution = str(dec%base) + solution
dec = dec/base
if dec > 0:
solution = str(dec) + solution
print solution
Explicación:
Dec = entrada ("Introduzca un número decimal a convertir:") - solicitar al usuario una entrada numérica (hay varias maneras de hacer esto en C mediante scanf por ejemplo)
base = 2 - especificar nuestra base es 2 (binario)
solución = "" - crear una cadena vacía en la que vamos a concatenar nuestra solución
, mientras que diciembre> = base: - mientras que nuestro número es más grande que la base entrado solución
= str (desc% base) + solución - Obtiene el módulo de la serie a la base, y agregarlo al comienzo de nuestra cadena (hay que sumar los números a la derecha utilizando el método de la división y el resto de la izquierda). la función str() convierte el resultado de la operación en una cadena. No puede concatenar enteros con cadenas en python sin una conversión de tipo.
Dec = Dec/base de - dividir el número decimal por la base en preparado para dar el siguiente módulo
si diciembre> 0: solución = str (dec) + solución - si nada se queda, agregarlo al principio (esto será 1, si acaso)
solución de impresión - imprimir el número final
Veo un desbordamiento del búfer si a la función binrep() no se le da suficiente espacio para el valor que está imprimiendo. Y, hablando de amarga (pero hace mucho tiempo) experiencia, las cosas que escriben en la parte frontal de una matriz pueden ser realmente desagradables de depurar. –
Sí, eso será problemático: si sus entradas son de más de 32 bits, debe asegurarse de aumentar el tamaño de SZ. – paxdiablo
Solucionado para evitar el desbordamiento del búfer. – paxdiablo