Imprimir valor máximo de un entero sin signo a través de una Complementario (~) del operador en C

por: IncludeHelp, de 31 de-ENE-2017

En “Un truco increíble para imprimir valor máximo de un entero unsigned en C” He discutido podemos encontrar el valor máximo de un unsigned int mediante la asignación de -1 a la variable. Aquí estoy con otro truco para obtener el valor máximo de una unsigned int usando uno de [NO operador AND bit a bit (~)] Piropo en lenguaje C.

Seguir los pasos dados:

Paso 1: declara una variable de unsigned int.

Paso 2: Assign con 0 (o 0x00 en hexadecimal).

unsigned int max_val;
max_val=0x00;

Paso 3: Una de Do cumplido.

max_val = ~max_val;

Paso 4: Imprimir el valor con el formato% u especificador.

Considere el siguiente ejemplo:

#include <stdio.h>
int main()
{
unsigned int max_val;
max_val=0x00;
//one's compliment
max_val = ~max_val;
printf("max_val: %X (Decimal value: %u)n",max_val,max_val);
return 0;
}

salida

max_val: FFFFFFFF (Decimal value: 4294967295)

Explicación

Como ya os comentamos en NOT en modo bit operador (~) que alternar NOT en modo bit operador (voltea ) todos los bits de 0 a 1 y 1 a 0 , valor aquí inicial es 0x00000000 (binario: 00000000000000000000000000000000 ) y después de cumplido de una ( ~ MAX_VAL ) el valor será 0xFFFFFFFF (binario: 11111111111111111111111111111111 ), que es el valor máximo de una unsigned número entero .


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *