您的位置:首页 > 编程语言 > C语言/C++

C语言移位运算

2013-12-13 19:59 393 查看
移位运算有两种:>>(右移),<<(左移)。

a>>b表示将a的二进制值右移b位。 a<<b 表示将a的二进制值左移 b位。要求 a和 b都是整型, b只能为正数,且不能超过机器字所表示的二进制位数。

移位运算具体实现有3种方式:循环移位、逻辑移位和算数移位(带符号)。

循环移位:移入的位等于移出的位。

逻辑移位:移出的位丢失,移入的位取0.

算数移位:移出的位丢失,左移入的位取0,右移入的位取符号位。

C语言中,移位运算方式与具体的C语言编译器有关,通常实现中,左移位运算后右端出现的空位取0,移至左端之外的位舍弃;右移运算与操作数的数据类型是否带有符号位有关,不带符号位的操作数右移位时,左端出现的空位补0,移至右端之外的位则舍弃,带符号位的操作数右移位时,左端出现的空位按符号位复制,移至右端之外的位则舍弃。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: