#include <stdio.h>
void bit_convert(int num, int *arr){
int koe,index=0;
while (1){
koe = num % 2;
arr[index++] = koe;
num /= 2;
if (num==0) break;
}
while (index < 32) arr[index++]=0;
}
int main() {
int x,y,p,n;
int a[32],b[32];
scanf("%d\n%d\n%d\n%d",&x,&y,&p,&n);
//printf("%d %d %d %d\n",x,y,p,n);
bit_convert(x,a);
bit_convert(y,b);
for (int i=31; i>(31-n); i--) {
a[p]=b[i];
p++;
}
for (int i=0;i<32;i++) printf("%d",a[i]);
return 0;
}
음수도 고려해야 하나요?
y 비트를 x로 옮기는 방식이 잘못됐습니다.
예를 들어 대충 8bit라고 치고
x = 00000000
y = 00011011
이랬을 때, n=4, p=0이라면 정답은
11010000 이 아니라
10110000 이 되어야합니다.