Sistemas & Desarrollo

encontrados: 7, tiempo total: 0.042 segundos rss2
14 meneos
169 clics
Cómo implementar cadenas de caracteres [ENG]

Cómo implementar cadenas de caracteres [ENG]

El lenguaje de programación C define una cadena como 'una secuencia contigua de caracteres terminada por e incluyendo el primer carácter nulo'. Como el carácter '' marca el final, a menudo lo llamamos terminación cero o nula. En los programas en C esto significa que una cadena es char* o char[n]. Históricamente esta representación es anterior a C y parece provenir de los ensambladores PDP-11. La principal ventaja de esta representación es la eficiencia del espacio, además de otros trucos como dividir una cadena larga en varias insertando nulos. Sin embargo, otros lenguajes de programación a menudo usan otras representaciones. ¿Cuáles más son posibles?
3 meneos
48 clics

Convirtiendo cien millones de enteros a cadena de caracteres por segundo [ENG]  

Hace casi 7 años escribí un artículo comparando el rendimiento de diferentes métodos para convertir un entero en una cadena de caracteres. Muchas cosas han cambiado desde entonces, así que he decidido escribir otro artículo de seguimiento para ver cuánto se ha avanzado en los últimos años.
3 meneos
48 clics

Validando cadenas UTF-8 usando tan poco como 0,7 ciclos por byte [ENG]

La mayoría de las cadenas que se encuentran en Internet están codificadas usando un formato unicode particular llamado UTF-8. Sin embargo, no todas las cadenas de bytes son UTF-8 válidas. Las reglas sobre lo que constituye una cadena UTF-8 válida son un tanto arcanas. Sin embargo, parece importante validar rápidamente estas cadenas antes de consumirlas.
2 meneos
8 clics

Chafa, utilidad para mostrar cualquier tipo de imagen en el terminal [ENG]  

Chafa es una utilidad de línea de comandos que convierte todo tipo de imágenes, incluidos GIF animados, en una salida de caracteres ANSI/Unicode que se pueden mostrar en un terminal. Es altamente configurable, con soporte para transparencia y múltiples modos de color y espacios de color, combinando rangos seleccionables de caracteres Unicode para producir la salida deseada.
3 meneos
41 clics

Las cadenas literales generan rangos incorrectos en C++ [ENG]

C++20 vendrá con lo que llamamos la biblioteca de rangos, aunque la interfaz de rangos ha sido compatible desde C++11 en el bucle `for`. El bucle `for` que usa rangos puede detectar cualquier cosa que sea un rango y trabajar con él. En particular, puede funcionar con cadenas literales. El problema en este caso es que las cadenas literales tienen un carácter NULL al final y eso puede llevar a errores ya que hay un elemento que no se ve fácilmente visible en el rango formado por la cadena. Para solucionarlo existen varios métodos.
2 meneos
53 clics

Cómo compara cadenas la JVM con instrucciones x86 de las que nunca has oído hablar [ENG]

Probablemente todos hemos visto la implementación de la función de comparación de cadenas de texto en Java. Esta compara carácter a carácter hasta que hay alguno diferente como máximo hasta la longitud de la cadena más corta y, en caso de que todos sean iguales hasta dicha longitud, devuelve la diferencia de las longitudes. Pero, ¿sabías que hay una segunda implementación que usa ensamblador de x86?
4 meneos
93 clics

Sift4: superrápido y preciso algoritmo para calcular la distancia entre cadenas de texto [ENG]

Sift4 es la cuarta versión de un nuevo algoritmo de cálculo de distancias entre cadenas de texto (similar al algoritmo Levenstein) pero superrápido, preciso y con complejidad O(n). Actualmente está implementado en Javascript pero la idea es implementarlo en más lenguajes así como publicarlo en plataformas como GitHub.

menéame