本文介绍了是移位运算(小于;&下,>&GT)的算术或逻辑的C 2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在C,是移位运算符(<<
,>>
)的算术或逻辑?
In C, are the shift operators (<<
, >>
) arithmetic or logical?
推荐答案
根据结果是实现定义的符号值的右移。
According to K&R Second edition (the bible) the results are implementation-defined for right-shifts of signed values.
说,C / C ++通常是实现签署值的算术移位。
Wikipedia says that C/C++ 'usually' implements an arithmetic shift on signed values.
基本上你需要或者测试你的编译器或不依赖于它。我对当前的MS C ++编译器VS2008帮说,他们做了一个算术移位。
Basically you need to either test your compiler or not rely on it. My VS2008 help for the current MS C++ compiler says they do an arithmetic shift.
这篇关于是移位运算(小于;&下,&GT;&GT)的算术或逻辑的C 2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!