The Left Shift
By: aathishankaran
The left shift
The left shift operator, <<, shifts all of the bits in a value to the left a specified number of times. It has this general form:
Value << num
Here, num specifies the number of positions to left-shift the value in value. That is, the << moves all of the bits in the specified value to the left by the number of bit positions specified by num. For each shift left, the high-order bit is shifted out (and lost), and a zero is brought in on the right. This means that when a left shift is applied to an in operand, bits are lost once they are shifted past bit position 31. if the operand is a long, then bits are lost after bit position 63.
Java’s automatic type promotions produce unexpected results when you are shifting byte and short values.
//Left
shifting a byte value.
class ByteShift
{
public
static void main (String args[]) {
byte a = 64, b;
int d;
d = a << 2;
b = (byte) (a<<2);
System.out.println(“Original value of a:
†+ a);
System.out.println(“ d and b: “ + d + “
“ +b);
}
}
The output
generated by this program is shown here:
Original
value of a: 64
d and b :
256 0
Since a is promoted to int for the purposes of evaluation, left-shifting the value 64 (0100 0000) twice results in d containing the value 256 (1 0000 0000). However, the value in b contains 0 because after the shift, the low-order position (bit 31 or 63), the value will become negative. The following program illustrates this point:
//Left
Shifting as a quick way to multiply by 2.
class
MultByTwo {
public static void main(String args[]) {
int count;
int num = 0Xffffffe;
for (count =0; count<4 ; count++) {
num = num
<< 1;
System.out.println(num);
}
}
}
The program generates the following output:
536870908
1073741816
2147483632
-32
The starting value was carefully chosen so that after being shifted left 4 bit positions, it would produce –32. As you can see, when a 1 bit is shifted into bit 31, the number is interpreted as negative.
Archived Comments
1. This is just the copy of JAVA 2.0:THE COMPLETE REFERENCE page no.84/85. please don't just copy-paste
View Tutorial By: ansuman at 2012-08-15 13:55:56
2. i want left shift defintion with examples
View Tutorial By: hareesha at 2011-10-17 09:29:44
Comment on this tutorial
- Data Science
- Android
- AJAX
- ASP.net
- C
- C++
- C#
- Cocoa
- Cloud Computing
- HTML5
- Java
- Javascript
- JSF
- JSP
- J2ME
- Java Beans
- EJB
- JDBC
- Linux
- Mac OS X
- iPhone
- MySQL
- Office 365
- Perl
- PHP
- Python
- Ruby
- VB.net
- Hibernate
- Struts
- SAP
- Trends
- Tech Reviews
- WebServices
- XML
- Certification
- Interview
categories
Related Tutorials
Program using concept of byte long short and int in java
Update contents of a file within a jar file
Tomcat and httpd configured in port 8080 and 80
Count number of vowels, consonants and digits in a String in Java
Student marks calculation program in Java
Calculate gross salary in Java
Calculate average sale of the week in Java
Vector in Java - Sample Program
MultiLevel Inheritance sample in Java