2021. 3. 2. 19:34 c언어

C언어 - Right shift

#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 > 0) {  //양수일때
			if (num & 1) {
				//	num = ((num >> 1) | x); //끝에가 1일 때
				num = num >> 1;
				num = num | x;
			}
			else
				num = num >> 1;
		}
		else {  // 음수일떄
			if (num & 1)
				num = num >> 1;
			else {
				//	num = ((num >> 1) & (x - 1)); // 끝에가 0일 때
				num = num >> 1;
				num = num & (x-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;
}

'c언어' 카테고리의 다른 글

수업에서 느낀점(변수)  (0) 2021.03.03
C언어 - 단어 순서 정하기  (0) 2021.03.02
C언어 - Left shift  (0) 2021.03.02
수업에서 느낀점  (0) 2021.03.01
c언어 미로찾기 (BPS)  (0) 2021.03.01
Posted by pi92

블로그 이미지
pi92

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.7
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

글 보관함