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,移至右端之外的位则舍弃,带符号位的操作数右移位时,左端出现的空位按符号位复制,移至右端之外的位则舍弃。
a>>b表示将a的二进制值右移b位。 a<<b 表示将a的二进制值左移 b位。要求 a和 b都是整型, b只能为正数,且不能超过机器字所表示的二进制位数。
移位运算具体实现有3种方式:循环移位、逻辑移位和算数移位(带符号)。
循环移位:移入的位等于移出的位。
逻辑移位:移出的位丢失,移入的位取0.
算数移位:移出的位丢失,左移入的位取0,右移入的位取符号位。
C语言中,移位运算方式与具体的C语言编译器有关,通常实现中,左移位运算后右端出现的空位取0,移至左端之外的位舍弃;右移运算与操作数的数据类型是否带有符号位有关,不带符号位的操作数右移位时,左端出现的空位补0,移至右端之外的位则舍弃,带符号位的操作数右移位时,左端出现的空位按符号位复制,移至右端之外的位则舍弃。
相关文章推荐
- 深入理解C语言中的移位运算
- [深入理解计算机系统]C语言中的位运算、逻辑运算和移位运算
- C语言负数的移位运算
- 《c专家编程》笔记--c语言中算术运算优先级高于移位运算
- C语言负数的移位运算
- Mohican_4/1 C语言 移位运算基本操作 计算二进制的个数
- C语言的移位运算
- 深入理解C语言中的移位运算
- c语言中算术运算优先级高于移位运算
- c语言--移位运算,统计某个整数2进制含1的个数
- C语言移位运算的优先级低于加减乘除
- C语言中数值的移位运算
- C语言中 移位操作运算
- (转载)C语言负数的移位运算
- C语言实现数组倒置(异或运算)
- 黑马程序员 -- IOS C语言 基础运算02
- 在VB里怎么实现移位的算术运算操作
- 移位运算:>> << >>>
- 移位运算实际应用——判断整数N是否为2的阶次方
- 除法运算就是移位和相减