#include<stdio.h>
int main()
{char s[]="123456789",*p1,*p2,a,b
for(p1=s*p1p1++)
p2=--p1
b=*p1
p2=p1-1
a=*(p2--)
for(p1>=s)*p1--=*p2--
s[0]=a
s[1]=b
printf("%s\n",s)
return 0
}
就是把一个数转化成二进制再直接对他进行操作例如:
45>>2 //45右移两位
45的二进制为:101101
右移两位就为: 001011
001011再转化为十进制为:11
所以45>>2= 11
左移运算符
45<<2
45的二进制为:101101
左移两位就为:10110100
10110100再转化为十进制为:180
所以45<<2=180
计算机中存的是补码(以8位为例)-5 原码为 1 000 0101 反码为: 1 111 1010补码为: 1 111 1011 这就是-5的补码按位右移2位,则变成: 1 111 1110 这是-2的补码