#include<stdio.h>
int main(void) {
	unsigned int a, c;
	a = 1;
	scanf(" %u", &c);
	a = a<< 7;
	((a&c) == 0) ? printf("0") : printf("1");
	a = a >> 1;
	
	((a&c) == 0) ? printf("0") : printf("1");
	a = a >> 1;
	
	((a&c) == 0) ? printf("0") : printf("1");
	a = a >> 1;
	
	((a&c) == 0) ? printf("0") : printf("1");
	a = a >> 1;
	
	((a&c) == 0) ? printf("0") : printf("1");
	a = a >> 1;
	
	((a&c) == 0) ? printf("0") : printf("1");
	a = a >> 1;
	
	((a&c) == 0) ? printf("0") : printf("1");
	a = a >> 1;
	
	((a&c) == 0) ? printf("0") : printf("1");
	return 0;
}

주의할 점

  1. unsigned로 부호비트가 없는 int를 만들자

  2. a«1이 아닌 a=a«1을 적어야 한다 필자는 여기서 헤맸다. 마찬가지로 a=a»1

3.참 거짓일때 1을 출력하는지 0을 출력하는지 잘 계산하자

c를 입력받는다 %u는 부호없는 10진수이다. 입력버퍼를 비울 수 있게 띄어 쓰자

부호없는 1을 만들어 옆으로 7번 비트를 옮겨(2진수로는 1000 0000) 입력한 c와 8번째 자리를 비교한다

비교했으면 1000 0000을 옆으로 한비트 옮겨 0100 0000으로 만든 후 c와 7번째 자리를 비교한다

~반복~

int가 32비트인가? 쓸 수 있으니 꼭 8자리로 하지 않아도 될 듯 하다

카테고리:

업데이트: