left shift operator in c
#include<stdio.h>
void main()
{
int i,n,a[100],temp;
printf("Enter the number of elements:\n");
scanf("%d",&n);
printf("Enter the elements\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("Original array\n");
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
/* shifting array elements */
temp=a[0];
for(i=0;i<n-1;i++)
{
a[i]=a[i+1];
}
a[n-1]=temp;
printf("\nNew array after rotating by one postion in the left direction\n");
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
}
// An simple example for binary digits (bits):
// Example: 01001011
// 0 0 0 0 1 0 1 1
// 128 64 32 16 8 4 2 1
// 00001011 = 64 + 8 + 2 + 1 = 75
int i = 1;
if (i == true && i = 1 || i = 2)
{
//And operator -> &&
//Or operator -> ||
i = i << 1;
i = i >> 1;
//Shift bits to left operator -> <<
//Value of i :
// 0 0 0 0 0 0 0 1 } Value of i = 1
// 128 64 32 16 8 4 2 1 } Values
// 0 0 0 0 0 0 0 1 } Value of i = 2
// 256 128 64 32 16 8 4 2 } Values shifted this way : >>
// i << (number of times) is same as i * (number of times)
//Shift bits to right operator -> >>
//Value of i :
// 0 0 0 0 0 0 0 1 } Value of i = 1
// 256 128 64 32 16 8 4 2 } Values
// 0 0 0 0 0 0 0 1 } Value of i = 2
// 128 64 32 16 8 4 2 1 } Values shifted this way : <<
// i << (number of times) is same as i / (number of times)
}