Tema del plan 2
# include & ltstdlib.h & gt
//La función de esta función es calcular los dos bytes inferiores de un número entero de acuerdo con el requisitos de la pregunta El número del complemento de mayor a menor.
int binario(int alto, int bajo, int número){
int bit count = 0 //El número de dígitos de mayor a menor
int datos = 0;
int medio = 0;
char p[2]= { 0 }; i++){
medio = medio & lt& lt1;
if (i& lt=(15-bajo)& amp& ampi& gt=(15-alto))medio+ = 1; /p>
}
//Extrae dígitos de mayor a menor* *alto-bajo+1 del número y guárdalos en el número.
Número = número y ampmid
//Saque el byte más bajo del número y colóquelo en p[0] para su posterior cálculo.
p[0]=número & amp0xFF
//Saca el penúltimo byte del número y colócalo en p[1] para su posterior cálculo.
p[1]=(número>>8)&0xFF
printf( "\n%d %d ", (int)p[1], (int)p [0]);
//Calcule el número de dígitos de este número y póngalo en bitcount.
bitcount=(alto y bajo)+1;
printf( "\n%d ", recuento de bits
//Si el orden alto); es menor que 8, entonces todos los bits del número están en p[0].
if(alto<8)
{
datos = p[0]>>low;
}
else if(low & gt; 7) //Si el orden inferior es mayor que 7, entonces todos los bits del número están en p[1].
{
datos = p[1]>>(low-8);
}
Otros
p>
{
datos = p[1]<<(8-low);
datos+=(p[0]>>low );
}
//Si el número es negativo, el código original se calcula según el principio de "código complementario = código complementario del código original + 1".
if(1 = =(datos & gt;& gt(cuenta de bits-1)))
{
datos = datos & lt& lt(17 recuento de bits);
datos = datos & amp0xFFFF
datos = datos & gt& gt(recuento de 17 bits);
datos = datos-1;
p>
datos = datos & lt& lt(recuento de 17 bits);
datos = ~datos
datos = datos & amp0xFFFF p>
datos = datos & gt& gt(recuento de 17 bits);
Datos = 0-datos;
}
Devolver datos;
}
int main()
{
int alto = 0
int bajo = 0;
int número = 0;
int datos;
printf("\nPor favor, introduzca un número.
\ n ");
//Ingrese cualquier número entero como un número en la memoria.
scanf("%d ", & amp number);
/ /Envíe el número justo ahora a la pantalla en formato hexadecimal
printf("\nEl número es 0x%x", número);
//El usuario ingresa el alto. y dígitos bajos, los dígitos altos están separados por un espacio no mayor a 15 y los dígitos bajos no son menores a 0.
printf("\nIngrese los valores alto y bajo (16> high>low&. gt=0):");
scanf("%d %d ",&high&low);
//El bit alto debe ser mayor que el bit bajo.
if(alto<=bajo)
{
printf(" Error ");
return-1;
}
//Función de conversión de llamadas
Datos = binario (alto, bajo, número);
//Función de conversión de salida
printf("\ndata:%d\n ",datos);
}