/*题目描述: 编程,输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:
输入一个正整数n,获得该整数低字节中的前4位,并按示例格式输出。
输入输出示例:括号内是说明
输入
2 (repeat=2)
123
3479
输出
0,1,1,1, ( 123对应的16位二进制数是0000000001111011,则低字节为01111011,其中高4位为0111)
1,0,0,1, (3479对应的16位二进制数是0000110110010111,则低字节为10010111,其中高4位为1001)*/
输入一个正整数n,获得该整数低字节中的前4位,并按示例格式输出。
输入输出示例:括号内是说明
输入
2 (repeat=2)
123
3479
输出
0,1,1,1, ( 123对应的16位二进制数是0000000001111011,则低字节为01111011,其中高4位为0111)
1,0,0,1, (3479对应的16位二进制数是0000110110010111,则低字节为10010111,其中高4位为1001)*/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int repeat,ri;
int n,a,x;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++)
{ a=0x80;
scanf("%d",&n);
do
{
if(n&a)
x=1;
else
x=0;
printf("%d,",x);
a=a>>1;/*一定要赋值,仅仅是a>>1并不改变a本身的数值 */
}while(a!=0x8);/*注意a的取值 */
printf("\n");
}
return 0;}