Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eternal Idol

#711
Descarga e instala el Application Verifier, selecciona los Basic tests al menos y depura tu programa.
#713
Para que te de 112 no estas tomando 4 bits sino 8:
01110000b

Con 4 bits podes expresar un conjunto de numeros que va de 0 a 15.
0000b
1111b

Por eso en el otro hilo te pregunte el tamaño del numero.

PD. Si quisieras obtener 112 no haria falta mover nada simplemente usarias la mascara 0xF0.
#714
Cita de: palacio29 en 21 Octubre 2016, 05:16 AM
El problema es que la categoria no me la dan con numeros y me piden que halle la categorai, copio textual "El numero de categoria se encuentra dentro del unsigned char en los cuatro bits mas significativos(los de la izquierda). Entonces me piden que a traves de la letra que ingresaron, que con operaciones de bits, halle la categoria.

Si partis de w: 119d, 0x77, 01110111b el resultado correcto es 00000111b es decir 7. Con el desplazamiento a derecha lo conseguis, no se para que intentas usar una mascara en primer lugar (salvo que estes probando con codigo donde el MSB este a la derecha y no a la izquierda).

PD. No crees mas hilos sobre manipulacion de bits, ya tenes dos.
#715
Cita de: geeke en 19 Octubre 2016, 22:44 PM
No puedes usar los bloques try/catch para capturar un segmentation fault, porque no es una excepción mas bien es una señal que el sistema operativo envía como consecuencia al intentar acceder en alguna zona de memoria no permitida. Además no veo razón para hacer esto, porque continuar el programa después no es posible se invocaría comportamiento indefinido y esto no es nada seguro.

Este hilo no aclara ni aporta nada que se no haya dicho, ni que no se pudiera encontrar en Google con 5 minutos de busqueda en base a lo ya dicho, en el hilo bloqueado.

PD. La proxima vez no abras otro hilo cuando hay uno ya bloqueado sobre el tema, si estas tan desperado por escribir algo me mandas un mensaje y te desbloqueo el hilo, gracias.
#716
El numero tiene que tener un tamaño predefinido de bytes, en tu caso el resultado seria 0 para esos dos bits tomando un int de 4 bytes o un short de 2 bytes. ¿Es un ejemplo que se te ocurrio a vos?

4921 como short:
0001 0011 0011 1001

4921 como int:
0000 0000 0000 0000 0001 0011 0011 1001

Lo que uno haria es un desplazamiento de bits a la derecha:
https://es.wikipedia.org/wiki/Operador_a_nivel_de_bits#Desplazamientos_de_bits

Por ejemplo x >> 14 te daria los dos bits mas significativos de un short.

#717
Ese es el mecanismo standard que provee el lenguaje C++ para capturar excepciones lo cual no implica que esta en particular sea controlada por C++. En Windows, donde no hay ninguna señal, el codigo funciona perfectamente con VC++ (aunque lo ideal seria usar SEH). En POSIX tenes: https://en.wikipedia.org/wiki/Sigaction

Código (c++) [Seleccionar]
__try
{
int *x = 0;
*x = 666;
}
__except( EXCEPTION_EXECUTE_HANDLER)
{
cout << " doh";
}


Y mas informacion para concluir: https://en.wikipedia.org/wiki/Segmentation_fault
#718
https://en.wikipedia.org/wiki/C%2B%2B#Exception_handling

Código (c++) [Seleccionar]
try
{
int *x = 0;
*x = 666;
}
catch(...)
{
cout << "doh";
}


Ahora podes investigar al respecto, te recomiendo leer el capitulo correspondiente de cualquier libro de C++.

PD. Depurar es otra cosa.
#719
ASM / Re: [Gnu AS] BruteForce
1 Octubre 2016, 17:37 PM
No; vos ya tenes un codigo funcional pero al cambiarlo lo jodiste y queres que yo lo escriba de nuevo ... encima tendria que hacerlo con gcc y esa sintaxis ... depuralo instruccion por instruccion o arranca de nuevo con el codigo que funciona y mira linea por linea lo que haces.
#720
ASM / Re: [Gnu AS] BruteForce
1 Octubre 2016, 10:02 AM
No lo vi todo ya que me resulta bastante agotadora esta sintaxis pero esto es diferente y estimo que sin quererlo:

1)
   subq %rcx,%rdx   # rdx = rdx - rcx
         # es decir: lS = lS - ls
2)
   subq %rdx,%rcx   # rdx = rdx - rcx
         # lS = lS - ls