Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Ejercicio Info 1 Ayuda
Autor Mensaje
matiasmolivar Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. Electrónica
Facultad Regional Haedo

Mensajes: 3
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Nov 2013
Mensaje: #1
Ejercicio Info 1 Ayuda Otro Informática I (Electrónica)
Buenas noches,

Les pido su ayuda con este ejer de info 1 ( campos de bit).

En el mismo necesito ingresar un hexadecimal y verificar si el 4 bit mas significativo es 1.
Si lo es tengo que contar los 1 y 0 de los 4 bits menos significativos.
El problema es que con algunos ingresos me muestra el conteo y otros no.
Les agradezco su ayuda.[/code]

#include <stdio.h>
#include <conio.h>


int main(){
int A,Mask=0X0800,I,M=1,Cont1=0,Cont2=0;

printf("\n ingrese un entero hexadecimal\n");
scanf("\n%x", &A);
if (A&Mask==0x0800){
for(I=0;I<=3;I++){

if(A&M==1){
Cont1++;
A>>1;
}
else
Cont2++;
A>>1;


}

printf("\n Cont1=%d Cont0=%d\n",Cont1,Cont2);
getch();
11-11-2014 23:01
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Santi Aguito Sin conexión
Presidente del CEIT
Newtoniano
********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 1.238
Agradecimientos dados: 229
Agradecimientos: 614 en 335 posts
Registro en: Oct 2012
Mensaje: #2
RE: Ejercicio Info 1 Ayuda
Si necesitas ver que haya un 1 en el cuarto bit mas significativo, la mascara seria:


int Mask = 0x1000; // 0001 0000 0000 0000



Tambien podrias cambiar la condicion del if por:


if (A & Mask) {}


Sigue siendo lo mismo, pero me gusta leerlo mas asi =P

Busca la excelencia, el éxito llegará
(Este mensaje fue modificado por última vez en: 11-11-2014 23:24 por Santi Aguito.)
11-11-2014 23:11
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
luchovl2 Sin conexión
Secretario General
Dígame, Ingeniero.
*******

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 992
Agradecimientos dados: 19
Agradecimientos: 249 en 226 posts
Registro en: May 2009
Mensaje: #3
RE: Ejercicio Info 1 Ayuda
Hay algo raro aca. Si ingresás un hexa de un dígito, son cuatro bits. Si es así, la máscara no tiene sentido. O sea, está mal.
Si podés ingresar números de más de un dígito, no entiendo por qué solo contar los cuatro bits menos significativos. Pero podría ser....
Por otro lado, si tenés que preguntar por el cuarto bit más significativo, deberías ver el tamaño de la palabra. Vos asumiste que son palabras de cuatro bytes.

Una cosa, en el if más interno, hacés el corrimiento de A, pero también lo hacés al final del for. Entonces, cuando se cumplen todas las condiciones, corre A dos veces.
12-11-2014 14:41
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.