We have seen in the past blog about c compilation process, gcc compiler and some basic c language syntax.
Now we are going to see more on variables, if statement, arithmetic operation and while statement.
# Keywords and identifiers
keywords: are predefined function names that has a specific purpose and they cannot be used as identifiers in the program.
Identifiers: c identifiers are names used to refer to a number of things like variable and functions.
Identifiers must start with an alphabetic character.
If you want to be sure that your programs are portable in the new c standard, identifiers need to have a characters limit if 31.
# Arithmetic Operators
Are used to used to perform mathematical operations on the given expressions.
#include <stdio.h>
/**
 * main - Entry point
 * 
 * Description: print result of arithmetic operator
 * 
 * Return: Always 0 (Success)
 */
int main(void)
{
     int a = 5;
     int b = 15;
     int c;
     c = a + b;
     printf("a + b = %d", c);
     c = a % b;
     printf("a % b = %d", c);
     return (0);
}
# relational operators
Are used to perform comparisons on two variable.
#include <stdio.h>
/**
 * main - Entry point
 * 
 * Description: print result of arithmetic operator
 * 
 * Return: Always 0 (Success)
 */
int main(void)
{
     int a = 5;
     int b = 15;
     if ( a >= b )
     {
           printf("a is greater than or equal to b");
      }
      return (0);
}
# logical operators
Are used to perform logical operations on the given expressions and there are 3 types of logical operator in c, like logical AND (&&), logical OR (||) and logical NOT (!).
#include <stdio.h>
/**
 * main - Entry point
 * 
 * Description: print result of arithmetic operator
 * 
 * Return: Always 0 (Success)
 */
int main(void)
{
     int a = 5;
     int b = 15;
     if ( a >= b && a = b)
     {
           printf("both statement's are true");
      }
      return (0);
}
# Bitwise Operators
Are used to perform bit-level operations in C programming.
First you need to revise on how to turn binary into decimal and turn the decimal to binary.
Binary to decimal
 
 
Decimal to binary
Bitwise AND Operator &
works like the and logical operator the only case we get true is if 2 values are both true.
#include <stdio.h>
/**
 * main - Entry point
 * 
 * Description: Bitwise AND Operator
 * 
 * Return: Always 0 (Success)
 */
int main(void)
{
      int a = 8;
      int b = 21;
      printf("a & b = %d",a&b);
      return (0);
} 
8  =  00001000 (Binary)
21 =  00010101 (Binary)
Bitwise Operation of 8 and 21
00001000
&00010101
00000000 = 0 (Decimal)
Bitwise OR Operator |
works like the or logical operator the only case we get false is if both values are false.
#include <stdio.h>
/**
 * main - Entry point
 * 
 * Description: Bitwise OR Operator
 * 
 * Return: Always 0 (Success)
 */
int main(void)
{
      int a = 8;
      int b = 21;
      printf("a | b = %d",a|b);
      return (0);
} 
8  =  00001000 (Binary)
21 =  00010101 (Binary)
Bitwise Operation of 8 and 21
00001000
|00010101
00011101 = 29 (Decimal)
Bitwise XOR (exclusive OR) Operator ^
The output is 1(true) if the corresponding bits of two operands are opposite.
#include <stdio.h>
/**
 * main - Entry point
 * 
 * Description: Bitwise XOR (exclusive OR) Operator
 * 
 * Return: Always 0 (Success)
 */
int main(void)
{
      int a = 8;
      int b = 21;
      printf("a ^ b = %d",a^b);
      return (0);
} 
8  =  00001000 (Binary)
21 =  00010101 (Binary)
Bitwise Operation of 8 and 21
00001000
^00010101
 00011101 =  29 (Decimal)
Bitwise Complement Operator ~
It changes 1 to 0 and 0 to 1, so complement's in c work differently like the bitwise of 10(-10) which is the 2's compliment instead of 245.
#include <stdio.h>
/**
 * main - Entry point
 * 
 * Description: Bitwise Complement Operator
 * 
 * Return: Always 0 (Success)
 */
int main() {
    printf("Output = %d\n",~35);
    printf("Output = %d\n",~-12);
    return 0;
}
Right Shift Operator >>
Shift all bit to the right by a specific number
10 = 00001010
10 >> 3 = 00000010 
10 >> 0 = 00001010
#include <stdio.h>
/**
 * main - Entry point
 * 
 * Description: Right Shift Operator
 * 
 * Return: Always 0 (Success)
 */
int main(void)
{
     int i = 10;
     printf("right shift by 3 = %d", i>>3);
     return (0);
}
Left Shift Operator <<
Shift all the bit to the left by a specific number
10 = 00001010
10 << 3 = 00001010000
10 << 0 = 00001010
#include <stdio.h>
/**
 * main - Entry point
 * 
 * Description: Left Shift Operator
 * 
 * Return: Always 0 (Success)
 */
int main(void)
{
     int i = 10;
     printf("left shift by 3 = %d", i<<3);
     return (0);
}
# if, if ... else statements
If statement allows you to control if a program enters a section of code or not based on whether a given condition is true or false.
Syntax
if(boolean_expression 1) {
   /* Executes when the boolean expression 1 is true */
} else if( boolean_expression 2) {
   /* Executes when the boolean expression 2 is true */
} else if( boolean_expression 3) {
   /* Executes when the boolean expression 3 is true */
} else {
   /* executes when the none of the above condition is true */
}
Diagram
Example
#include <stdio.h>
/**
 * main - Entry point
 *
 * Description: if, if ... else statements
 *
 * Return: Always 0 (Success)
 */
int main(void)
{
   int a = 20;
   if( a == 10 ) 
   {
      /* if condition is true then print the following */
      printf("Value of a is 10\n" );
   } 
   else if( a == 20 ) 
   {
      /* if else if condition is true */
      printf("Value of a is 20\n" );
   } 
   else if( a == 30 ) 
   {
      /* if else if condition is true  */
      printf("Value of a is 30\n" );
   } 
   else 
   {
      /* if none of the conditions is true */
      printf("None of the values is matching\n" );
   }
   return (0);
}
# while loop
While loop is used to loop on a statement as long as the given condition is true.
Syntax
while(condition) {
   statement(s);
}
Diagram
Example
#include <stdio.h>
/**
 * main - Entry point
 *
 * Description: while loop statement 
 *
 * Return: Always 0 (Success)
 */
int main(void)
{
     /* local variable definition */
     int a = 0;
     /* while loop execution */
     while( a < 10 ) 
     {
            printf("value of a: %d\n", a);
            a++;
     }
     return (0);
}
 
 
              








 
    
Top comments (0)