**What is Left Shift (<<) Operator: **

**a<<b**means left shift the bits of number**a**by**b places**.- 3<<2 means left shift the bits of number
**3**by**2 places. Result = 12**- 011 is the bit representation of number 3.
- Left shift all the bits so => 0 1 1 0 (number =6)
- Left shift all the bits so => 0 1 1 0 0 (number = 12).

- Each time you left shift the number, it will be multiplied by 2. So if you shift by a number by k then number will be multiplied by k
^{2}.

**What is Right Shift (>>) Operator: **

**a>>b**means right shift the bits of number**a**by**b places**.- 12>>2 means right shift the bits of number
**12**by**2 places. Result = 3**- 0 1 1 0 0 is the bit representation of number 12.
- Right shift all the bits so => 0 1 1 0 (number =6)
- Right shift all the bits so => 0 1 1 (number = 3).

- Each time you right shift the number, it will be divided by 2. So if you shift by a number by k then number will be divided by k
^{2}. (Keeps only integer).

**Java Code**:

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.

Learn more about bidirectional Unicode characters

public class LeftRightShift { | |

static void LeftShift(int n){ | |

int x = n<<1; | |

System.out.println("n<<1, Left shift by 1 of n: "+ n + " is : " + x); | |

} | |

static void RightShift(int n){ | |

int x = n>>1; | |

System.out.println("n>>1, Right shift by 1 of n: "+ n + " is : " + x); | |

} | |

public static void main(String[] args) { | |

int n = 10; | |

LeftShift(n); | |

RightShift(n); | |

n = 62; | |

LeftShift(n); | |

RightShift(n); | |

} | |

} |

**Output**:

n<<1, Left shift by 1 of n: 10 is : 20 n>>1, Right shift by 1 of n: 10 is : 5 n<<1, Left shift by 1 of n: 62 is : 124 n>>1, Right shift by 1 of n: 62 is : 31