elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 ... 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [35] 36 37
341  Programación / Programación C/C++ / De minúscula a mayúscula a nivel de bits (lenguaje C.) en: 18 Marzo 2014, 22:53 pm
Hola a todos.

Lenguaje………………..: "C"

Sistema operativo.….: Windows XP

Compilador……………..: MinGW

Problema………………..:Esta estructura puede tener el mismo problema que plantea rir3760 en este post. 
                              http://foro.elhacker.net/programacion_cc/operadores_a_nivel_de_bits_lenguaje_c-t410671.0.html
                                                        
Error…………….…….….: Ninguno.

Otras Observaciones..:http://foro.elhacker.net/programacion_cc/de_minuscula_a_mayuscula_a_nivel_de_bits_en_lenguaje_c-t405856.0.html


Código…………………….:


//Con uniones y campos de bit.

Código
  1. #include <stdio.h>
  2.  
  3. union caracteres
  4. {
  5. unsigned char c;
  6. struct c_bits
  7. {
  8. unsigned b0:1;
  9. unsigned b1:1;
  10. unsigned b2:1;
  11. unsigned b3:1;
  12. unsigned b4:1;
  13. unsigned b5:1;
  14. unsigned b6:1;
  15. unsigned b7:1;
  16. } bits;
  17. };
  18.  
  19. int main(void){
  20. union caracteres caracter = {110};
  21.  
  22. printf("\n\n union caracteres caracter = {110};");
  23. printf("\n\n La variable caracter contiene la letra...: \"%c\"", caracter.c);
  24.  
  25. printf("\n\n caracter.bits.b5 = 0; //Apaga el bits 5 para que la letra 'n' se transforme en 'N'");
  26. caracter.bits.b5 = 0;
  27. printf("\n\n Ahora la variable caracter contiene la letra...: \"%c\"", caracter.c);
  28.  
  29. printf("\n\n");
  30. return 0;
  31. }
  32.  

//Con máscaras y operaciones a nivel de bit.

Código
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4. char letra = 'n';
  5.  
  6. printf("\n\n char letra = 'n';");
  7. printf("\n\n La variable letra contiene la letra...: \'%c\'", letra);
  8.  
  9. letra &=0xDF;
  10. printf("\n\n letra &=0xDF; // 0xDF es en binario = 1101 1111 --> pones a 0 el bit 5");
  11.  
  12. printf("\n\n Ahora la variable letra contiene la letra...: \'%c\'", letra);
  13.  
  14. printf("\n\n");
  15. return 0;
  16. }
  17.  

Saludos y como siempre muchas gracias.
Daniel 
342  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Sugerencia para todos los moderadores de Programación. en: 17 Marzo 2014, 14:53 pm
Hola Elektro.

http://foro.elhacker.net/programacion_cc/operadores_a_nivel_de_bits_lenguaje_c-t410671.0.html

Le voy a agregar el sistema operativo.-

Saludos.
Daniel 
343  Programación / Programación C/C++ / Re: Operadores a nivel de bits (lenguaje C). en: 17 Marzo 2014, 00:27 am
Hola a todos.
Gracias a , ivancea96,Rir3760,yoel_alejandro por la ayuda, me interesa el código de estos último dos que luego de debelar las dudas que expongo a continuación voy a correrlos y estudiarlos.-

Código
  1. unsigned despliegaMascara = 1 << 31;
engelx ¿me podrías decir cuál es el valor final de despliegaMascara?, no logro mostrarlo con un printf y mil disculpas por la ignoracia al suponer que podía ser una función.-

Código
  1. putchar(valor & despliegaMascara ? '1' : '0');
En esta línea valor en cada iteración se mueve un bits a la izquierda ¿ con despliegaMascara no debería pasar lo mismo ?.-

Demás esta aclarar que la ayuda de cualquiera es bienvenida.-

Saludos.
Daniel 
344  Programación / Programación C/C++ / Re: Operadores a nivel de bits (lenguaje C). en: 16 Marzo 2014, 03:34 am
Hola angelx.
Sí, me quedan dudas sobre tu explicación, no porque este mal hecha( todo lo contrario) solo que siempre tardo en que me caiga la ficha, cuando esto ocurra los volveré a consultar.-

Saludos.
Daniel
345  Programación / Programación C/C++ / Operadores a nivel de bits (lenguaje C). en: 16 Marzo 2014, 02:48 am
Hola a todos.
Estoy estudiando “Operadores a nivel de bits” y no sólo deseo aprender la sintaxis sino también interpretar lo que hace cada línea de código.-

Lenguaje: “C”

Problema: (dudas) Expuesta en el código. 
                                                                                 
Error: Ninguno.

Otras Observaciones: Ninguna.

Código:


Código
  1. # include <stdio.h>
  2.  
  3. void despriegaBits(unsigned valor);
  4.  
  5. int main(void){
  6. unsigned x; //No entiendo esta declaracion de variable, cual es el tipo?
  7. printf("\n\n Introduzca un entero sin signo....:");
  8. scanf("%u", &x);
  9.  
  10. despriegaBits(x);
  11.  
  12. return 0;
  13. }
  14.  
  15. void despriegaBits(unsigned valor){
  16. unsigned c; //No entiendo esta declaracion de variable, cual es el tipo?
  17.  
  18. unsigned despliegaMascara = 1 << 31; //Esta sentencia como se llama?, pareceria una funcion, pero no
  19.                                             //tiene parentesis, me desconcierta, y lo mas importante, como funciona?, que hace?.
  20.  
  21. printf("\n %10u = ", valor);
  22.  
  23. for(c = 1; c <= 32; c++){
  24. putchar(valor & despliegaMascara ? '1' : '0');
  25. valor <<= 1;
  26.  
  27. if(c % 8 == 0){
  28. putchar(' ');
  29. }
  30. }
  31. putchar('\n');
  32. }

Desde ya muchas gracias por la ayuda que puedan brindarnos.-
Saludos.
Daniel
346  Programación / Programación C/C++ / Re: Duda con programa - funcion strlen? en: 18 Febrero 2014, 03:11 am
Hola welchu.
Te  pongo un complemento más que me había olvidado.-
El else tiene que quedar así:
Código
  1. else{
  2. cadena[MAX-1] = '\0'; /* Esta es la linea que me faltaba  */
  3. while((ch = getchar()) !='\n' && ch!=EOF);
  4. }

Saludos.
Daniel
347  Programación / Programación C/C++ / Re: Duda con programa - funcion strlen? en: 12 Febrero 2014, 03:36 am
Hola welchu.
Fíjate si esto también te puede ayudar, el caso que en la función de amchacon no podes llamarla siempre porque si ingresas 6 o más caracteres(relacionado con mi programa) el bucle while queda “patinando” porque nunca encuentra el [Enter] o salto de línea para finalizar.-
Ejemplo: si ingresas “Daniel” el programa leerá “Danie”  5 caracteres y el sexto es para el ‘\n’ que en este caso quedará en el buffer de teclado haciendo que el bucle while nunca finalize.-
Bueno no hace tanto que estudio c y si me equivoco me lo dirán.-


Citar
fgets leerá hasta n-1 caracteres o hasta que lea un retorno de línea (\n).
En este último caso , el carácter de retorno de línea también es leído.-   

Código
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. #define MAX 6
  5.  
  6. int main(void){
  7. char cadena[MAX]={'\0'}, *p=NULL;
  8. unsigned int ch=0;
  9.  
  10. printf("\n\n ----- Programa que muestra el comportamiento de fgets -----");
  11. printf("\n\n Ingrese una frase....:");
  12. fgets(cadena, MAX, stdin);
  13. if((p=strchr(cadena, '\n'))){
  14. *p='\0';
  15. }
  16. else{
  17. while((ch = getchar()) !='\n' && ch!=EOF);
  18. }
  19. printf("\n Ingreso..............:%s", cadena);
  20.  
  21. printf("\n\n Pulse [Enter] para finalizar..."); getchar();
  22. return 0;
  23. }
   

Saludos.
Daniel
348  Programación / Programación C/C++ / Re: Pasar a función array de punteros.- en: 22 Enero 2014, 15:44 pm
Hola
Mil disculpas, creí que había incluido el código en el post y lo borre para hacer otra practica, me quede sin nada.-
Saludos.
349  Programación / Programación C/C++ / Re: Pasar a función array de punteros.- en: 21 Enero 2014, 23:37 pm
Hola
Ya casi lo tengo gracias a que pude copiar de los ejemplos de Leo y wiD^.-
Lo que necesitaría son 2 cositas más:
La primera.
Código
  1. char *ptrPalabras[15];
  2.  
¿Esto me asegura un array de punteros de N punteros y un ancho máximo
de 15 caracteres para cada palabra?.-
La segunda.
Código
  1. printf("\n %s", *(palabras+i));
  2.  



No me funciona, por favor si lo desean un poco de teoría del porque.-
Leo para vos que dedicas mucho tiempo mostrando códigos, discúlpame si no los tomo completos es que tomando trozos de cada ejemplo me resulta beneficioso pata mi aprendizaje.-

Saludos.
350  Programación / Programación C/C++ / Pasar a función array de punteros.- en: 20 Enero 2014, 02:36 am
Hola.
rir3760 si en algún post no respondo a tus ayudas es porque me lleva tiempo asimilarlas.-
Voy al grano, sigo con mis prácticas de punteros y el programa que estoy haciendo es para que el operador ingrese por ejemplo 8 nombres y luego ordenarlos.-
Hay 2 cosas que no sé hacer, la primera, alguien me podría decir como pasar un array de punteros a función y la segunda, ¿como puedo hacer para que la cantidad de punteros se pida que se ingrese por teclado y no ponerlo a mano?.-

Código
  1. printf("\n Ingrese un entero para establecer la cantidad de nombres a ordenar...:");

Aclaro que el programita es para poner algo sino me van a tirar de las orejas.-
Otra cosita, la validación de ingreso de entero la copié de un post de rir3760, ya la adopte como definitiva, funciona a la perfección.-

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void ingresoCorrecto(int*, int);
  5.  
  6. int main(void){
  7. char *ptrNombres[] = {"Rosita", "Alberto", "Claudio", "Yanina", "Pedrito", "Jorge", "Daniel", "Leo"};
  8. int indice=0, longitud=0;
  9.  
  10. longitud = sizeof ptrNombres / sizeof *ptrNombres;
  11.  
  12. printf("\n");
  13. for(indice=0; indice<longitud; indice++){
  14. printf("[%d] %s - ", indice, ptrNombres[indice]);
  15. }
  16.  
  17. ingresoCorrecto(&indice,longitud);
  18.  
  19. printf("\n Su eleccion fue...: %s", ptrNombres[indice]);
  20.  
  21. return 0;
  22. }
  23.  
  24. void ingresoCorrecto(int *ingreso, int longitud){
  25. int ch=0, ok=0, temp=0;
  26. do{
  27. printf("\n\n ingrese un entero del [0] al [%d] para extraer un nombre..:", longitud-1);
  28. ok = scanf("%d", &temp) == 1 && temp >= 0 && temp <= longitud-1;
  29. while ((ch = getchar()) != EOF && ch != '\n');
  30. }while(!ok);
  31. *ingreso = temp;
  32. }

Saludos.
Páginas: 1 ... 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [35] 36 37
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines