跳至内容
响水凹
欢迎来到 Guang-Wen Duan (Dennis Duan) 的个人 Wiki
用户工具
登录
站点工具
搜索
工具
显示页面
过去修订
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
computer:c:tips:bitwise_shift
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== 移位操作符的注意事项 ====== 移位操作符%%<<%%和%%>>%%的两个操作数必须是整数,与一般二元操作不同的是,两个操作数分别进行[[.:unary_conversions|一元转换]],结果类型为第一操作数转换为的类型。 移位次数(第二操作数)必须大于等于0,且小于被移位数(第一操作数)的bit位数,否则结果是未定义的(undefined)。例如,被移位数是一个32位的int整数,则第二操作数的合法取值范围是0~31。 对于左移%%<<%%运算,左侧移出的位被丢弃,右侧补入0。 对于右移%%>>%%运算,右侧移出的位被丢弃,左侧补入的值依赖于被移位数的类型和编译器实现: * 如果是无符号类型(unsigned)或非负的有符号类型(signed and non-negative),则补入0; * 如果是负数(negative),则可补入0或1,具体依赖于实现。 所以,如果要保证代码的可移植(portable)性,需要特别注意负数右移的情况。 {{tag>C语言}}
computer/c/tips/bitwise_shift.txt
· 最后更改: 2014/11/01 02:02 由
127.0.0.1
页面工具
显示页面
过去修订
反向链接
回到顶部