Operation
|
C
|
Java
|
MIPS
|
Shift left
|
<<
|
<<
|
sll
|
Shift right
|
>>
|
>>>
|
srl
|
Bitwise AND
|
&
|
&
|
and, andi
|
Bitwise OR
|
|
|
|
|
or, ori
|
Bitwise NOT
|
~
|
~
|
nor
|
- Shift operation
op
|
rs
|
rt
|
rd
|
shamt
|
funct
|
6
|
5
|
5
|
5
|
5
|
6
|
- shift left logical (sll)
- shift right logical (srl)
There are 2 types of right shift: logical and arithmetic. Both types shift the bits to the right, and the low order bit is lost. The difference is in what is shifted into the high order bit.
In a logical shift, a zero is shifted into the high order bit. In an arithmetic shift, the high order bit is sign extended: the value shifted into the high order bit matches the sign of the number. So if the number is positive, a zero is shifted in, and if the number is negative, then a one is shifted in. For example, if the value is 0100110111 and the condition is shift it right(logical) by one.Therefore, the answer is 0010011011.
If the number is positive, then arithmetic right shift looks just like logical right shift, since 0's are shifted into the high order bits. For example, if the value is 1101001101 and the condition is shift it right(logical) by one.Therefore, the answer is 1110100110.
2. AND Operation
- 1+1=1
- 1+0=0
- 0+0=0
- Therefore, 1011001101 and 1000111101 is equal to 1000001101
3. OR Operation
- 1+1=1
- 1+0=1
- 0+1=1
- 0+0=0
- Therefore, 1011001101 0r 1000111101 is equal to 1011111101
4. NOT Operation
- 1 change to 0
- 0 change to 1
- Therefore, 1011001101 will change to 0100110010
No comments:
Post a Comment