En este trabajo se han realizado cuatro ejercicios.
Aquí os dejo enlazado la pagina donde he sacado los ejercicios.
https://dochub.com/franvazquezalonso/aBNrqb/cprogramming_tutorial?dt=j6f6p0mcap1bi79d
Ejercicio 1:
#include <stdio.h>
main()
{
signed int a = 60; /* 60 = 0011 1100 */
unsigned int b = 13; /* 13 = 0000 1101 */
c = a & b; /* 12 = 0000 1100 */
printf("Line 1 - Value of c is %d\n", c );
c = a | b; /* 61 = 0011 1101 */
printf("Line 2 - Value of c is %d\n", c );
c = a ^ b; /* 49 = 0011 0001 */
printf("Line 3 - Value of c is %d\n", c );
c = ~a; /*-61 = 1100 0011 */
printf("Line 4 - Value of c is %d\n", c );
c = a << 2; /* 240 = 1111 0000 */
printf("Line 5 - Value of c is %d\n", c );
c = a >> 2; /* 15 = 0000 1111 */
printf("Line 6 - Value of c is %d\n", c );
}
Si tu incluyes las declaraciones de variables "unsigned int" declaras las variables sin signo.
Línea 8 . "c = a & b" realiza la función de ver que valores de binario tienen ambos números en común y los representa como otro número, siendo 60 = 0011 1100 y 13 = 0000 1101, los valores que toman ambos son: 12 = 0000 1100.
Línea 10 . "c = a | b" realiza la función de poner los valores que tienen en común o no, siendo 60 = 0011 1100 y 13 = 0000 1101, todos los valores que toman son: 61 = 0011 1101.
Línea 12 . "c = a ^ b" realiza la función de poner los valores que no tiene en común, siendo 60 = 0011 1100 y 13 = 0000 1101, los valores que no tienen en común son: 49 = 0011 0001.
Línea 14 . "c = ~a" realiza la función de poner los valores opuestos que tenga el número, siendo 60 = 0011 1100, pasa a ser -61 = 1100 0011.
Línea 16 . "c = a << 2" realiza la función de desplazar los valores a la izquierda tantas veces como venga indicado siendo 60 = 0011 1100, pasa a ser 240 = 1111 0000.
Línea 18 . "c = a >> 2" realiza la función de desplazar los valores a la derecha tantas veces como venga indicado, siendo 60 = 0011 1100, pasa a ser 15 = 0000 1111.
Ejercicio 2:
#include <stdio.h>
main()
{
int a = 21;
int c ;
c = a;
printf("Line 1 - = Operator Example, Value of c = %d\n", c );
c += a;
printf("Line 2 - += Operator Example, Value of c = %d\n", c );
c -= a;
printf("Line 3 - -= Operator Example, Value of c = %d\n", c );
c *= a;
printf("Line 4 - *= Operator Example, Value of c = %d\n", c );
c /= a;
printf("Line 5 - /= Operator Example, Value of c = %d\n", c );
c = 200;
c %= a;
printf("Line 6 - %= Operator Example, Value of c = %d\n", c );
c <<= 2;
printf("Line 7 - <<= Operator Example, Value of c = %d\n", c );
c >>= 2;
printf("Line 8 - >>= Operator Example, Value of c = %d\n", c );
c ^= 2;
printf("Line 10 - ^= Operator Example, Value of c = %d\n", c );
c |= 2;
printf("Line 11 - |= Operator Example, Value of c = %d\n", c );
}
c &= 2;
printf("Line 9 - &= Operator Example, Value of c = %d\n", c );
Línea 5 . "c = a" esta función hace que c tenga el valor de a, es decir 21.
Línea 7 . "c += a" esta función hace que se sume a 21, = 42.
Línea 9 . "c -= a" esta función hace que a c se le reste 21, = 21.
Línea 10 . "c *= a" esta función multiplica c (21) por a, = 441.
Línea 11 . "c /= a" esta función divide c (441) entre a, = 21.
Línea 13 . "c %= a" esta función nos da el resto de la división de c (200) y de a,= 11.
Línea 14 . "c <<= 2" esta función hace que el número en binario se desplace a la izquierda 2 veces. Siendo 11 = 0000 1011 y 44 = 0010 1100.
Línea 15 . " c >>= 2" esta función hace que el número en binario se desplace 2 veces a la derecha.
Siendo 44 = 0010 1100, y 11 = 0000 1011.
Línea 16 . "c &= 2" esta función hace que se cojan solo los valores en binario que ambos números tienen, siendo 11 = 0000 1011 y 2 = 0000 0010.
Línea 17 . "c ^= 2" esta función hace que se tomen solo los valores de binario que no tienen en común, siendo 2 = 0000 0010 y 2 = 0000 0010, y dando 0 = 0000 0000.
Línea 18 . "c |= 2" esta función hace se tomen todos los valores que tengan ambos números en común o no en común, siendo 0 = 0000 0000 y 2 = 0000 0010.
Ejercicio 3:
#include <stdio.h>
int main ()
{
/* local variable definition */
int a = 10;
/* check the boolean condition using if statement */
if( a < 20 )
{
/* if condition is true then print the following */
printf("a is less than 20\n" );
}
printf("value of a is : %d\n", a);
return 0;
}
Este programa calcula si a es menor a 20 mediante if y después da el valor de a.
Línea 5 . if si esto se cumple haría la función que se encuentra tras el if .
Ejercicio 4:
int main ()
{
/* local variable definition */
int a = 100;
/* check the boolean condition */
if( a < 20 )
{
/* if condition is true then print the following */
printf("a is less than 20\n" );
}
else
{
/* if condition is false then print the following */
printf("a is not less than 20\n" );
}
printf("value of a is : %d\n", a);
return 0;
}
Este programa explica si es superior o inferior a 100, mediante un if y un else.
Línea 5 . if (a < 20) si esto se cumple cumpliria la función que se encuentra tras el if .
Línea 6 . else, si el if de la línea 5 no cumple la función que se encuentre entre { } tras el else.
Bibliografía:
La información que he utilizado la he cogido de Tecnochamizo2 y de las explicaciones de clase.