C语言之左移和右移运算符

左移运算符(<<
左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指定(右操作数必须是非负值),其右边空出的位用0填补,高位左移溢出则舍弃该高位。

右移运算符( >>
右移运算符是用来将一个数的各二进制位右移若干位,移动的位数由右操作数指定(右操作数必须是非负值),移到右端的低位被舍弃,对于无符号数,高位补0对于有符号数,某些机器将对左边空出的部分用符号位填补(即算术移位),而另一些机器则对左边空出的部分用0填补(即逻辑移位)。注意:对无符号数,右移时左边高位移入0对于有符号的值,如果原来符号位为0(该数为正),则左边也是移入0如果符号位原来为1(即负数),则左边移入0还是1,要取决于所用的计算机系统。有的系统移入0,有的系统移入1。移入0的称为逻辑移位”,即简单移位;移入1的称为算术移位

%d和%u
有符号的十进制输出用%d,无符号的十进制输出用%u,对于long型的数据分别表示为%ld和%lu

你可能感兴趣的:(C,Programming,Language,学习笔记,c语言)