In C, are the shift operators (<<, >>) arithmetic or logical?
<<
>>
GCC does
for -ve - > Arithmetic Shift
For +ve -> Logical Shift