> b" first performs b mod 32||64 operation. If a is of int type, take mod 32. If a is of double type, take mod 64, and then Shifts are performed using the general shift arithmetic rules mentioned above."/> > b" first performs b mod 32||64 operation. If a is of int type, take mod 32. If a is of double type, take mod 64, and then Shifts are performed using the general shift arithmetic rules mentioned above.">

Home >Java >javaTutorial >Java's clever method of displacement operation

Java's clever method of displacement operation

高洛峰
高洛峰Original
2016-12-16 17:05:551674browse

Left shift operation: If x is of type byte, short, or char, then x is promoted to int;

2) If x is of type byte, short, char, or int, then n is reassigned (the process is: take the lower 5 of n's complement bits are then converted into decimal int values, which is equivalent to taking n modulo 32: n=n%32);

If x is long type, n is reassigned (the process is: take the lower 6 bits of n's complement and then Converting to a decimal int value is equivalent to taking n modulo 64: n=n%64);

(Because the int type is 4 bytes, that is, 32 bits, moving 32 bits will make no sense. For long, it is modulo 64)

3) Shift x to the left by n digits, and the entire expression produces a new value (the value of x remains unchanged);

5cfffb9747eed5aa7c7d14042e38a51a> b", first perform b mod 32||64 operation, If a is of type int, take mod 32. If a is of type double, take mod 64, and then use the general shift operation rules mentioned above to shift.

At this point, you can understand why there is this statement

 // 符号位为1的右移   
// 最高4位为1000, 右移1位,变成1100也就是c,   
for (int i = 0;i < 8 ;i++)   
System.out.print( Integer.toHexString(0x80000000 >> i) + " ");

in the BitSet class, because Programmers who are familiar with jdk know that writing 1L << (bitIndex % 64) is redundant for jdk.

For more articles related to Java’s clever methods of displacement operation, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:JAVA shift operatorNext article:JAVA shift operator