Autor
|
Tema: Empacar dos caracteres en una variable entera unsigned. [C] (Leído 3,218 veces)
|
DanielPy
Desconectado
Mensajes: 145
|
Hola a todos. Creo que es la primera vez que los consulto y no puedo mostrar ningún avance, bueno debo aclarar que estoy desconcertado y no sé por dónde comenzar y les soy sincero al decir que ni siquiera pude buscar en la web.- Dejo el enunciado y espero que puedan ayudarme con teoría o con algún ej.- Saludos. Daniel
|
|
« Última modificación: 22 Febrero 2015, 20:17 pm por engel lex »
|
En línea
|
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
|
|
|
engel lex
|
el entero lo haces igual al char 1 desplazado tantos bits como tiene char variable_int = variable_char_1<<sizeof(char)
luego al entero le sumas el otro char variable_int = variable_int + variable_char_2
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Es relativamente fácil, todas las variables a utilizar deben ser sin signo y la operación para empaquetar los caracteres es: unsigned char a = ALGO; unsigned char b = ALGO; unsigned int r = a << CHAR_BIT | b; /* Impresion bit por bit de la variable r */
Como imprimir una variable bit por bit es algo que ya se trato en uno de tus otros temas. Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
DanielPy
Desconectado
Mensajes: 145
|
Hola. engel lex, me ocurrió algo inusual con tu respuesta, cuando la leí por primera vez tenía unos ej. Que luego (de ver el partido de la selección Argentina) desaparecieron y me apareció mi post modificado (por vos) y realmente no le encuentro diferencia con el original. rir3760, ¿me podrías decir si mi programa tiene que ver con el enunciado? .- Tan sólo me faltaría que alguien me diga en la práctica, ¿de qué forma se puede aplicar el empaquetado de caracteres?.- Gracias a todos por el tiempo.- #include <stdio.h> #include <limits.h> void empacaCaracteres(char a, char b); int main(void){ unsigned char a = 'r', b = 'd'; empacaCaracteres(a, b); return 0; } void empacaCaracteres(char a, char b){ unsigned int v = a << CHAR_BIT | b; unsigned bits = 1U << (sizeof(unsigned) * CHAR_BIT - 1), sep=0; while(bits){ printf(sep %8 == 0 ? " " : ""); sep++; bits /=2; } }
Saludos. Daniel
|
|
|
En línea
|
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
|
|
|
crack81
Desconectado
Mensajes: 222
|
Olle daniel desde un tiempo he visto tus dudas y me gustaria saber que curso estas siguiendo o donde estas encontrando esos ejercicios
si los compartes seria fabuloso saludos...
|
|
|
En línea
|
Si C/C++ es el padre de los lenguajes entonces ASM es dios.
|
|
|
DanielPy
Desconectado
Mensajes: 145
|
Hola crack81. Te dejo la imagen de la tapa.- Saludos. Daniel
|
|
|
En línea
|
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
¿me podrías decir si mi programa tiene que ver con el enunciado? Tu programa realiza la operación indicada de forma correcta, solo una recomendación: no utilices la función printf para imprimir una cadena vacía. En su lugar puedes utilizar un condicional para imprimir el espacio o bien ya que se trata de imprimir un solo carácter puedes usar la función putchar y el operador condicional, de esta forma: while (bits){ bits >>= 1; sep++; if (sep % CHAR_BIT == 0) putchar(sep == sizeof(unsigned) * CHAR_BIT ? '\n' : ' '); }
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
engel lex
|
Hola. engel lex, me ocurrió algo inusual con tu respuesta, cuando la leí por primera vez tenía unos ej. Que luego (de ver el partido de la selección Argentina) desaparecieron y me apareció mi post modificado (por vos) y realmente no le encuentro diferencia con el original. jaja algunas veces corrijo detallitos en imagenes y no aviso lo que hice fue modificar tu imagen agregando el parametro " width=600" luego del img para que la imagen no se viera tan grande, sin eso se ve así
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Quitar carácteres de una variable
Programación Visual Basic
|
FaiF (A¥åHøRå)
|
4
|
2,111
|
16 Enero 2006, 18:00 pm
por FaiF (A¥åHøRå)
|
|
|
[MOD] Declarar variable parar dividir parte entera y real
« 1 2 3 »
Programación Visual Basic
|
frankiani
|
20
|
14,457
|
3 Julio 2009, 15:17 pm
por Karcrack
|
|
|
duda al introducir un caracter en una variable entera
Dudas Generales
|
Norochii
|
1
|
3,327
|
19 Octubre 2011, 20:07 pm
por $Edu$
|
|
|
¿Cómo evitar el ingreso de caracter en variable entera?
.NET (C#, VB.NET, ASP)
|
Dryken
|
8
|
5,216
|
26 Noviembre 2012, 20:21 pm
por Dryken
|
|
|
Dudas con variable entera y bucles en python.
Scripting
|
NOB2014
|
6
|
4,284
|
9 Octubre 2017, 19:44 pm
por ivancea96
|
|