Search results
Results from the WOW.Com Content Network
The two basic types are the arithmetic left shift and the arithmetic right shift. For binary numbers it is a bitwise operation that shifts all of the bits of its operand; every bit in the operand is simply moved a given number of bit positions, and the vacant bit-positions are filled in.
The symbol of left shift operator is <<. It shifts each bit in its left-hand operand to the left by the number of positions indicated by the right-hand operand. It works opposite to that of right shift operator. Thus by doing ch << 1 in the above example (11100101) we have 11001010. Blank spaces generated are filled up by zeroes as above.
Left arithmetic shift Right arithmetic shift. In an arithmetic shift, the bits that are shifted out of either end are discarded. In a left arithmetic shift, zeros are shifted in on the right; in a right arithmetic shift, the sign bit (the MSB in two's complement) is shifted in on the left, thus preserving the sign of the operand.
Arithmetic shift: the operand is treated as a two's complement integer, meaning that the most significant bit is a "sign" bit and is preserved. Logical shift: a logic zero is shifted into the operand. This is used to shift unsigned integers.
Because the denominator is a power of two, the multiplication can be implemented as an arithmetic shift to the left and the division as an arithmetic shift to the right; on many processors shifts are faster than multiplication and division.
The very fastest shifters are implemented as full crossbars, in a manner similar to the 4-bit shifter depicted above, only larger. These incur the least delay, with the output always a single gate delay behind the input to be shifted (after allowing the small time needed for the shift count decoder to settle; this penalty, however, is only incurred when the shift count changes).
The ALU (or arithmetic logic unit) has the following input, output and control lines: 2 32-bit input lines: one for the B bus and one for the bus that is connected directly to the H register. 1 32-bit output line, which is connected directly to the shifter. 6 control lines aimed to select which operation to perform.
bitwise shift left of a long value1 by int value2 positions lshr 7b 0111 1011 value1, value2 → result bitwise shift right of a long value1 by int value2 positions lstore 37 0011 0111 1: index value → store a long value in a local variable #index: lstore_0 3f 0011 1111 value → store a long value in a local variable 0 lstore_1 40 0100 0000 ...