프로그래밍 알고리즘

[정올 1274] 2진수를 10진수로...

꾸준한사람 2023. 1. 3. 02:44
반응형

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&code=1274&sca=99 

 

JUNGOL

 

www.jungol.co.kr

#include <stdio.h>

int N[8], minus = 1, dec;

int main(void)
{
	int j = 1;
	for (int i = 0; i < 8; i++)	{
		scanf("%1d", N + i);
	}
	
	if (N[0] == 1) {
		minus = -1;
		int idx = 8;
		while (idx--) { //1을 뺀다.
			if (N[idx]) { // 1이면
				N[idx] = 0; break;
			}
			else	N[idx] = 1;
		}
		//toggle 한다.
		for (int i = 7; i >= 0; i--) {
			N[i] = (N[i] == 0 ? 1 : 0);
		}
	}
	//한번에 바꾸고 마이너스 곱하기
	for (int i = 7; i >= 0; i--) {
		if (N[i]) {
			dec += j;
		}
		j *= 2;
	}
	printf("%d", minus * dec);
	return 0;
}
반응형

'프로그래밍 알고리즘' 카테고리의 다른 글

[정올 1309] 팩토리얼  (0) 2023.01.03
[정올 1295] 이진탐색  (2) 2023.01.03
[정올 1264] 마법색종이  (0) 2023.01.03
[정올 1262] 긴 자리 곱셈  (0) 2023.01.03
[정올 1240] 제곱근  (0) 2023.01.02