字符数组循环右移2位。c语言

Python016

字符数组循环右移2位。c语言,第1张

#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的补码