Octal a decimal en C

Para terminar la serie de ejercicios sobre conversiones de números entre distintas bases veremos cómo convertir un número octal a decimal usando el lenguaje de programación C. Es exactamente el mismo algoritmo que usamos para convertir hexadecimal a decimal; únicamente cambia la base (de 16 a 8, porque octal es base 8) y la obtención de la equivalencia. ...

noviembre 20, 2018 · 3 min · 620 palabras · Parzibyte

Convertir binario a decimal en C

Cuando escribí la entrada anterior sobre cómo convertir decimal a binario en C olvidé escribir un nuevo post sobre hacer el proceso inverso, es decir, convertir binario a decimal en C. Veamos cómo podemos convertir una cadena que representa a un número binario en su forma decimal. Por ejemplo, convertir “101011111011” en 2811. ...

noviembre 19, 2018 · 3 min · 630 palabras · Parzibyte

Convertir dígito en char a entero en C

Los caracteres y los enteros en C tienen una relación si a ambos los tratamos como lo primero. Cada carácter se puede representar de forma entera o de forma de carácter. Veremos cómo convertir un carácter en forma de dígito (por ejemplo ‘0’) a su representación decimal (0) utilizando algunas operaciones. ...

noviembre 19, 2018 · 2 min · 298 palabras · Parzibyte

Desbordamiento de búfer en C

Hoy veremos lo que es un desbordamiento de búfer en C y cómo puede (en su forma más simple) hacer que un usuario aproveche esa vulnerabilidad para explotar nuestro programa. Nota: esto es diferente a cuando se desborda una variable. Lo que es un desbordamiento de búfer Según la Wikipedia: En seguridad informática y programación, un desbordamiento de búfer (del inglés buffer overflow o buffer overrun) es un error de software que se produce cuando un programa no controla adecuadamente la cantidad de datos que se copian sobre un área de memoria reservada a tal efecto (buffer): Si dicha cantidad es superior a la capacidad preasignada, los bytes sobrantes se almacenan en zonas de memoria adyacentes, sobrescribiendo su contenido original, que probablemente pertenecían a datos o código almacenados en memoria. Esto constituye un fallo de programación. En otras palabras le da al usuario de nuestro programa la forma de sobrescribir una variable a su antojo; bueno, no siempre y no tan fácil, pero alguien con tiempo puede encontrarlas y explotarlas. Esto es peligroso en programas que se van para producción, por ejemplo un sistema de la apertura de una puerta o cosas de esas que tienen que ver con la seguridad. ...

noviembre 19, 2018 · 4 min · 777 palabras · Parzibyte

Leer datos por teclado en C utilizando scanf

Este post es muy básico pero nos enseña cómo leer una variable dada por un usuario en C utilizando la función scanf. Con esta función podemos leer cualquier tipo de dato, siempre y cuando especifiquemos su tipo correctamente. ...

noviembre 19, 2018 · 3 min · 487 palabras · Parzibyte

Mayor o menor de edad en varios lenguajes de programación

Introducción Este es un ejercicio resuelto básico, pero nos ayudará si somos principiantes. Se trata de un algoritmo que te dice si eres mayor o menor de edad según tu edad. Lo implementaremos en Python, Go, PHP, C, C# y Java (ya lo habíamos hecho en JavaScript) ...

noviembre 19, 2018 · 3 min · 563 palabras · Parzibyte

Obtener valor entero a partir de dígito hexadecimal en C

Como sabemos, los números hexadecimales se representan con 16 dígitos; por eso son base 16. Para eso se usan los números del 0 al 9 y las letras de la A a la F. Pero esas letras tienen un valor en decimal, la A tiene el valor de 10, la B de 11 y así hasta que la F tiene 15. Pues justamente hoy veremos cómo obtener ese valor decimal o entero a partir de un carácter hexadecimal. La función debe quedar de tal forma que si le pasamos una ‘A’ devolverá un 10; o si le pasamos un ‘1’ devolverá 1. ...

noviembre 19, 2018 · 3 min · 520 palabras · Parzibyte

Usar fgets en lugar de scanf en C

Cuando aprendemos algoritmos en C, la forma de escanear variables por teclado es a través de scanf. Si bien este método funciona, existe el peligro de un desbordamiento de búfer. Antes que nada te invito a ver lo que es un desbordamiento de búfer en C. fgets vs scanf en C Después de que leíste lo del desbordamiento es hora de ver por qué es mejor usar fgets en lugar de scanf. Esto es porque fgets escanea una variable pero únicamente hasta donde le digamos; es decir, nosotros le decimos cuánto debe leer (el tamaño). Scanf en cambio no hace eso, lee todo dentro de la posición en memoria. ...

noviembre 19, 2018 · 3 min · 630 palabras · Parzibyte

Invertir cadena en C

Voltear cadena en C Girar, rotar, voltear o invertir una cadena en C es una cosa fácil de hacer, aunque no tan fácil como en otros lenguajes de programación. El algoritmo es sencillo, recordemos que las cadenas en C son simples arreglos de caracteres. Así que tenemos que ir desde el inicio hasta la mitad de la cadena, rotando carácter por carácter. Nota: mira cómo invertir un arreglo en C. ...

noviembre 17, 2018 · 4 min · 747 palabras · Parzibyte

Formatear código C online

Hacer que nuestro código se vea y lea bien usando una herramienta online En cualquier lenguaje de programación que he probado siempre he querido que el código se vea bien. Algunos poderosos IDE’s traen el autoformato automático para determinados lenguajes; por ejemplo, VSCode formatea el código JavaScript. Si queremos programar en otro lenguaje (como C) y embellecer nuestro código sin instalar nada, podemos hacerlo con una herramienta online. ...

noviembre 14, 2018 · 1 min · 206 palabras · Parzibyte