c언어

C언어 - Left shift

pi92 2021. 3. 2. 19:33
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {

	int num, n;
	int i;
	int x = 0x80000000;
	scanf("%d %d", &num, &n);


	for (int i = 0; i < 32; i++) // 입력값 출력
	{
		if (i % 4 == 0 && i != 0)
			putchar(' ');
		if (num & (1 << (31 - i)))
			putchar('1');
		else
			putchar('0');
	}

	putchar('\n');

	//연산과정
	for (i = 0; i < n; i++) {
		if (num & x)
			num = (num << 1) | 1; // 음수일경우 1추가 (or연산자 이용)
		else
			num = num << 1;
	}

	for (int i = 0; i < 32; i++)  // 출력값 출력
	{
		if (i % 4 == 0 && i != 0)
			putchar(' ');

		if (num & (1 << (31 - i)))
			putchar('1');
		else
			putchar('0');
	}


	return 0;
}