百度面试题,二进制数移位编程

2014-11-23 22:06:52 · 作者: · 浏览: 22

//1.输入一个字节内的数(0-255),然后将该数的转换为二进制数,然后将高四位和第四位互换


// int a = 0;


// printf("请输入一个(0-255)字节内的的数:\n");


// scanf("%d", &a);


// unsigned char c = (unsigned char)a;


// unsigned char left = 0;//存储左移之后的结果


// unsigned char right = 0;//存储右移之后的结果


// left = c << 4;


// right = c >> 4;


// printf("%d\n", left | right);


//2.输入一个字节内的整数(0-255),然后将该数的转换为二进制数,然后将奇数位和偶数位互换


// int a = 0;


// printf("请输入一个(0-255)字节内的数:\n");


// scanf("%d", &a);


// unsigned char c = (unsigned char)a;


// unsigned char left = 0;//存储左移之后的结果


// unsigned char right = 0;//存储右移之后的结果


// left = c << 1;


// left = left & 170;


// right = c >> 1;


// right = right & 85;


// unsigned char result = left | right;


// printf("%d", result);


//3.输入一个字节内的数(0-255)和移动位数.输出移位结果(要求循环移位)


//提示:系统自带的移位都是非循环的


// int a = 0, b = 0;


// printf("请输入一个(0 - 255)字节内的数和移动位数:\n");


// scanf("%d%d", &a, &b);


// unsigned char c = (unsigned char)a;


// unsigned char left = 0; //存储左移之后的结果


// unsigned char right = 0; //存储右移之后的结果


// left = c << b;


// right = c >> (8 - b);


// printf("%d\n", left | right);