C语言:位运算

#include<stdio.h>
typedef unsigned char uc;
uc num;
uc rotate(uc num,uc bit){
    uc i,high=8;
    for(i=0;i<bit;i++)
        if(num&1<<high-1)num=num<<1|1;
        else num<<=1;
    return num;
}
int main(){
    uc bit;
    while(scanf("%hhu%hhu",&num,&bit)==2){
        printf("%hhu,%hhu,%hhu\n",num,bit,rotate(num,bit));
    }

}
//0000 0011 (2)-> 0000 1100
//1100 0000 (1)-> 1000 0001

 

posted on 2020-03-24 11:34  ~明月几时有  阅读(202)  评论(0)    收藏  举报